忽然發覺...
我 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:
這題我竟然知道 _A_
呵,1.8 有些地方實在不是很好
Post a Comment
Note: Only a member of this blog may post a comment.