Size: a a a

2020 September 03

VN

Vladislav Nazarchuk in RubyRush
коллеги, привет.
подскажите пожалуйста, конструкция
for x in do
....
end
не меняет же начального значения? но и не предпочтительна к использованию так как не является блоком?
источник

VN

Vladislav Nazarchuk in RubyRush
то есть
```
a=[1,2,3]
for a in a do
   a += a
end
puts a

вернет последнее значение 6
источник

VN

Vladislav Nazarchuk in RubyRush
но в документации https://ruby-doc.org/docs/keywords/1.9/Object.html об этом не сказанно
Подскажите, пожалуйста в каком документе, об этом можно узнать
источник

VV

Vadim Venediktov in RubyRush
Vladislav Nazarchuk
то есть
```
a=[1,2,3]
for a in a do
   a += a
end
puts a

вернет последнее значение 6
for a in a звучит как бесмыслеца.

Надо так: for x in a, где x — переменная, в которую по очереди будут закинуты каждый элемент массива a.
источник

VV

Vadim Venediktov in RubyRush
Вот, почитайте:

https://rubyrush.ru/articles/ruby-for/
источник

VN

Vladislav Nazarchuk in RubyRush
Vadim Venediktov
for a in a звучит как бесмыслеца.

Надо так: for x in a, где x — переменная, в которую по очереди будут закинуты каждый элемент массива a.
https://rubyrush.ru/articles/ruby-for/ - оооо!!! Спасибо))) это оказвывается у вас читал))
Но в оф доках к сожалению нет ((

Спасибо))
источник

Э

Эдем in RubyRush
Нет чего конкретно?
источник

Э

Эдем in RubyRush
Вот такое сходу гуглится:

https://ruby-doc.org/docs/ruby-doc-bundle/Manual/man-1.4/syntax.html#for

Это, правда, ещё когда в блоках не было отдельной области видимости, поэтому написано

for is the syntax sugar for:

 
(expr).each `{' `|' lhs..`|' expr.. `}'
источник

E

Eugene in RubyRush
Эдем
Вот такое сходу гуглится:

https://ruby-doc.org/docs/ruby-doc-bundle/Manual/man-1.4/syntax.html#for

Это, правда, ещё когда в блоках не было отдельной области видимости, поэтому написано

for is the syntax sugar for:

 
(expr).each `{' `|' lhs..`|' expr.. `}'
ха! for реально вызывает each - я не знал
источник

Э

Эдем in RubyRush
Ты через VM-дебаггер посмотрел? Или как там он правильно называется
источник

Э

Эдем in RubyRush
Где процессы можно отследить
источник

E

Eugene in RubyRush
нет, класс просто свой написал
источник

E

Eugene in RubyRush
источник

Э

Эдем in RubyRush
Норм
источник

Э

Эдем in RubyRush
[1] pry(main)> def for_loop; for i in [1, 2]; end; end
=> :for_loop
[2] pry(main)> puts RubyVM::InstructionSequence.disasm(method(:for_loop))
== disasm: #<ISeq:for_loop@(pry):1 (1,0)-(1,39)> (catch: FALSE)
== catch table
| catch type: break  st: 0000 ed: 0006 sp: 0000 cont: 0006
| == disasm: #<ISeq:block in for_loop@(pry):1 (1,14)-(1,34)> (catch: FALSE)
| == catch table
| | catch type: redo   st: 0005 ed: 0006 sp: 0000 cont: 0005
| | catch type: next   st: 0005 ed: 0006 sp: 0000 cont: 0006
| |------------------------------------------------------------------------
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1])
| [ 1] ?@0<Arg>
| 0000 getlocal_WC_0                ?@0                                 (   1)
| 0002 setlocal_WC_1                i@0
| 0004 nop                          [Bc]
| 0005 putnil
| 0006 nop
| 0007 leave                                                            (   1)[Br]
|------------------------------------------------------------------------
local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1])
[ 1] i@0
0000 duparray                     [1, 2]                              (   1)[LiCa]
0002 send                         <callinfo!mid:each, argc:0>, <callcache>, block in for_loop
0006 nop
0007 leave                                                            (   1)[Re]
источник

Э

Эдем in RubyRush
<callinfo!mid:each, argc:0>
источник

E

Eugene in RubyRush
прикольно
источник

E

Eugene in RubyRush
хорошо бы было бы, если бы они AST стандартизировали, конечно
источник

E

Eugene in RubyRush
сейчас методы для этого есть, а документации нет
источник

E

Eugene in RubyRush
причём принципиально - говорят, не нужна документация, это задний двор интерпретатора, нечего там смотреть
источник