今日の Ruby 落とし穴
Ruby の落とし穴には載っていないようなので。
def
def foo
# ...
end
上記スクリプトは SyntaxError にならない(def
がふたつあるのに注意)。
しかし、実際にメソッド foo
を呼び出そうとすると、
def
def foo
# ...
end
foo
% ruby test.rb
test.rb:5: undefined local variable or method `foo' for main:Object (NameError)
未定義だと怒られる。
あと、
p [1, 2, 3].map do |v|
v + 1
end
このコードは意図通りに動作しないどころか、ブロックが実行されない、というのには驚いた。