2016-08-26 2 views
0

Я читал через документацию для Enumerator и я наткнулся на этот пример:рубин Синтаксис Объяснение

fib = Enumerator.new do |y| 
    a = b = 1 
    loop do 
    y << a 
    a, b = b, a + b 
    end 
end 

Все имеет смысл для меня на этой линии, за исключением: a, b = b, a + b. Может кто-нибудь объяснить, что происходит?

+2

'а = b' и' Ь = а + b'. –

+1

Может помочь, если вы мысленно добавите скобки: '(a, b) = [b, a + b]' (этот синтаксис также работает) –

+0

@NeilSlater Yep! Теперь это имеет гораздо больший смысл. – LandonSchropp

ответ

2

Это параллельная модель присвоение, которое вы можете увидеть на многих языках, включая рубин , вероятно, вы найдете это полезным Parallel Assignment operator in Ruby

+0

А, я вижу это сейчас. Благодаря! – LandonSchropp

Смежные вопросы