在 Ruby 中,当你运行时:
()
=> nil
输出为nil
。我不明白这是使用哪种 Ruby 机制。
我以为它正在调用 self()
,但是 self()
返回 语法错误,意外的“(”,期待输入结束
.
为什么返回nil
,这是使用了哪种语言特性?
最佳答案
“无值”在 Ruby 的很多地方被视为 nil
:
-> { break }.()
#⇒ nil
42 if false
#⇒ nil
这里也是一样:括号是多余的,但它们维护了代码块,即空代码块,因此它被视为 nil
。
对于 Ruby 2.6+,您可以自己检查 AST:
main > RubyVM::AbstractSyntaxTree.parse('()')
#⇒ (SCOPE@1:0-1:2 tbl: [] args: nil body: (BEGIN@1:1-1:1 nil))
关于ruby - 为什么 () 在 Ruby 中返回 nil?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54351373/