What have you found for these years?

2009-11-23

忽然發覺...

我 ruby 怎麼那麼熟啊。plumm 隨便拿了幾個 ruby 陷阱考題,
就算很不確定,也可以篩到只剩兩個選擇。而且有些在 JRuby,
Rubinius 的行為是會有點不同的... 例如以下:

['foo'].each do |i|
['bar'].each do |i|
print i
end
print i
end

在 1.8 會是 barbar
在 1.9 會是 barfoo
原因是 1.8 的 block 是 assignment,
do |i| 展開是 i = ...
因此內層的結果會影響到外層。但在 1.9 中,就有 scope 的觀念了。
甚至有 block local variable, 用 ; 分隔。
....大概是之前試 Rubinius 和 ruby-core 看很久的關係吧?
常常有不少實作細節的討論。像這些地方,不同實作都很容易有不同。

==
因此這種考題很無聊,真的。平時你也不會寫這種混淆的程式吧?
不過我居然答得出不少 :/

2 retries:

Poga Po said...

這題我竟然知道 _A_

Lin Jen-Shin (godfat) said...

呵,1.8 有些地方實在不是很好

Post a Comment

Note: Only a member of this blog may post a comment.



All texts are licensed under CC Attribution 3.0