1
我正在通過一個簡單的教程each
vs for
循環在Ruby中的方式。這應該是一個簡單的例子,但由於某種原因,我不理解yield語句和for循環之間的交互。紅寶石量和For循環
class MyEachThing
def each
yield 1
yield 42
yield 2
yield 42
yield 3
end
end
for i in MyEachThing.new
p i
end
# >> 1
# >> 42
# >> 2
# >> 42
# >> 3
產量,我由接下來的例子對我來說很有意義:
def calling
p yield(45)
end
calling {|i| i*2}
我只是不明白第一個例子是如何工作的。感謝您的幫助。
@K明白了!謝謝。在這種情況下'for'方法在語法上似乎很奇怪。 'each'方法對我來說更有意義。 – inthenameofmusik
是的,使用'each'是比較好用的,因爲它比較習慣。看到這篇文章的一些更有趣的信息:http://stackoverflow.com/questions/3294509/for-vs-each-in-ruby –
表達式不是很「等效」。如果在每個'end'後添加'pi',則在使用'for'時會打印'i'的最後一個值,而當使用'each'時會引發異常:'NameError:未定義的局部變量或方法'i'對於main:Object' .... –