为什么我会这样做?
p {a:3}
# => syntax error, unexpected tINTEGER, expecting tSTRING_CONTENT or tSTRING_DBEG or tSTRING_DVAR or tSTRING_END
# => p {a:3}
^
答案 0 :(得分:4)
Ruby在解析引擎中有一些奇怪之处。一个是某些事情需要围绕它们的括号。
例如,这应该有用。
p({a:3})
或者这个
hash = { a: 3 }
p hash
正如另一个答案所指出的那样。原因是解释程序处理如下。
# Input
p { a: 3 }
# What the interpreter sees
p do
a: 3
end
Kernel#p
不支持块,因此您必须使用括号。