💎
[ruby] p {hoge: 1} はsyntax error
雑なコードを書いている中で以下がsyntax errorに
p {hoge: 1}
?????っとなって色々試してみると、p {hoge: 1}
以外はエラーにはならない。
# # syntax error
# p {hoge: 1}
# no error
h = {hoge: 1}
p h
# no error
p ({hoge: 1})
# no error
p Hash.new()
# no error
def a; {hoge: 1}; end
p a
え??っとなったんだけど、よくよく考えると当然。
pが引数にblockを渡されたと解釈されるためですね。
(実は考えても全く分からなかったのでググったらスタックオーバーフローに回答が書いてあった)。
秒で気づきたかったけど、解決するまで1時間以上かかった。。無念。
Discussion