Перейти к содержимому


Фотография

[OC] константы

opencomputers

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 Оффлайн   electronic_steve

electronic_steve

    Пользователь

  • Пользователи
  • PipPipPip
  • 79 сообщений
  • Городчелябинск

Награды

              

Отправлено 05 Июнь 2016 - 21:27

привет игроки!

не знаю зачем но я написал константы.

они замораживают значение переменной.

код:

const={}
setmetatable(const,{__call=function(self,key) rawset(self,key,{rawget(_G,key)}) rawset(_G,key,nil) end})
setmetatable(_G,{__index=function(self,key)  if const[key] then return const[key][1] else return rawget(self,key) end end,__newindex=function(self,key,value) if not const[key] then rawset(self,key,value) end end})

пример:

pi=math.pi
const "pi"
pi="error"

print(pi) --> 3.1415926535898

ещё один пример:

const "_"
_=123

print(_) --> nil

Сообщение отредактировал electronic_steve: 22 Июнь 2016 - 15:05

  • Zer0Galaxy, Totoro, Fingercomp и 2 другим это нравится

#2 Оффлайн   SDV

SDV

    #!/usr/bin/env python

  • Пользователи
  • PipPipPipPipPipPipPip
  • 589 сообщений
  • ГородO.R.E.N.B.U.R.G.

Награды

     

Отправлено 05 Июнь 2016 - 21:33

не знаю зачем

Применений много, особенно когда большая портянка кода.

Константы как раз фиксируют переменные и в дальнейшем можно не бояться что ты их изменишь от первоначального значения.

Тебе надо это пушнуть на гитхаб ОС.

Глядишь девелопер его закоммитит в ОСь.



#3 Оффлайн   NEO

NEO

    Орден К.А.

  • Пользователи
  • PipPipPipPipPipPipPip
  • 1 571 сообщений
  • ГородСолнце

Награды

   2                        

Отправлено 05 Июнь 2016 - 21:33

А можно код отформатировать?



#4 Оффлайн   Asummonster

Asummonster

    Свой человек

  • Пользователи
  • PipPipPipPipPipPipPip
  • 569 сообщений
  • ГородОдесса

Награды

                    

Отправлено 22 Июнь 2016 - 13:24

Может, я что-то не так делаю, но не работает.

3e40f9310f.jpga47351aa13.jpg


Ещё перестаёт работать интерпретатор 



#5 Оффлайн   electronic_steve

electronic_steve

    Пользователь

  • Автор темы
  • Пользователи
  • PipPipPip
  • 79 сообщений
  • Городчелябинск

Награды

              

Отправлено 22 Июнь 2016 - 15:06

...

обновил код. к сожалению этот код не будет работать в OC.

проблема в том что в OC какая то хрень происходит в _G.


Сообщение отредактировал electronic_steve: 22 Июнь 2016 - 15:06






Темы с аналогичным тегами opencomputers

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных


Яндекс.Метрика