新手问题 关于 Ruby puts 的一个小问题

torubylist · January 07, 2016 · Last by frodosens replied at February 04, 2016 · 1919 hits

看 ruby programming。irb 里面尝试。发现了一个小问题。求解。

2.3.0 :001 > puts { name: 'yzhao',email: '[email protected]'  }.class
SyntaxError: (irb):1: syntax error, unexpected ':', expecting '}'
puts {name: 'yzhao',email: '[email protected]' }.class
           ^
(irb):1: syntax error, unexpected ',', expecting '}'
puts {name: 'yzhao',email: '[email protected]' }.class
                    ^
    from /Users/zhaoyongping/.rvm/rubies/ruby-2.3.0/bin/irb:11:in `<main>'
2.3.0 :002 > a = {name: 'yzhao',email: '[email protected]' }.class
 => Hash 
2.3.0 :003 > puts a
Hash
 => nil 
2.3.0 :004 > 

我仔细想了下,难道是优先级的问题,先 puts {}.然后再取 class?貌似不合常理啊。

好像是不能直接 puts 哈希

puts( { name: 'yzhao',email: '[email protected]'  }.class)

带上括号就行了,不带括号会产生歧义。

{ } 会被认为是函数块 加上括号即可

You need to Sign in before reply, if you don't have an account, please Sign up first.