为什么我会得到这个?
p {a:3}
# => syntax error, unexpected tINTEGER, expecting tSTRING_CONTENT or tSTRING_DBEG or tSTRING_DVAR or tSTRING_END
# => p {a:3}
^
最佳答案
Ruby 的解析引擎有一些奇怪的地方。一是某些内容需要用括号括起来。
例如,这应该可行。
p({a:3})
或者这个
hash = { a: 3 }
p hash
正如另一个答案所指出的。其原因是解释器的处理如下。
# Input
p { a: 3 }
# What the interpreter sees
p do
a: 3
end
Kernel#p
不支持 block ,因此您必须使用括号。
关于ruby - 将哈希传递给 p 会导致语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20051417/