@anonymous У меня в рубях по-другому объявить нельзя.
> [1].map{|x|a = x}; puts a
NameError: undefined local variable or method `a' for main:Object
from (irb):2
from /home/komar/.rvm/rubies/ruby-2.3.1/bin/irb:11:in `<main>'
> a = nil; [1].map{|x|a = x}; puts a
1
=> nil
А вообще, конечно, им дали таблицы и colon notation, нет, не хочу, хочу жрать говно
```
local T = {}
-- ниже две совершенно бессмысленные строки, но укажем эксплицитно, что есть такие атрибуты
T.id = nil
T.addr = nil
function T:func1(arg1, arg2)
self.id = ...
self.addr = ...
end
function T:func2()
if self.id then
...
end
end
...
-- T:func1('foo', 'bar')
-- local var = T:func2()
...
return T
```
@anonymous Что ты тут не понял?
Ещё раз:
Вместо того, чтобы лезть во внешний скоуп, как было сделано там, откуда я принёс /0:
```
local id = nil
local addr = nil
local function func1(arg1, arg2)
id = ...
addr = ...
end
local function func2()
if id then
...
end
end
```
Лучше упаковать код (функции) и данные (переменные) в таблицу. Использовать функции как class methods. Сорт оф синглтон.
Инкапсуляция. Слышал такой баззворд из нулевых (девяностых (восьмидесятых (...)))?
(код вымышленный)
@anonymous что за хуйню ты спизданул