在Ruby中,运行时:
()
=> nil
输出为nil
。我不知道这是使用哪种Ruby机制。
我以为它在打电话self()
,但是self()
回来了syntax error, unexpected '(', expecting end-of-input
。
为什么返回此值nil
,以及使用的是哪种语言功能?
nil
在Ruby中,很多地方都将“ No value”视为:
-> { 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))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句