rand 10
有效,但不是1 + rand 10
。为什么必须1 + rand(10)
?
> RUBY_DESCRIPTION
=> "ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.4.0]"
> rand 10
=> 8
> (1 + rand 10)
SyntaxError: (irb):15: syntax error, unexpected tINTEGER, expecting keyword_do or '{' or '('
(1 + rand 10)
^
from /Users/peter/.rvm/rubies/ruby-1.9.2-p0/bin/irb:17:in `<main>'
> 1 + rand 10
SyntaxError: (irb):16: syntax error, unexpected tINTEGER, expecting keyword_do or '{' or '('
from /Users/peter/.rvm/rubies/ruby-1.9.2-p0/bin/irb:17:in `<main>'
答案 0 :(得分:4)
1 + rand
本身就是一个有效的语句,因此被解析为一个。 10
似乎与解析器不合适,因为您刚刚给它一个完整的表达式。它希望运算符或其他东西扩展语句,而不是另一个术语。
我现在感觉不是很清楚,但我认为这是有道理的。正确?
答案 1 :(得分:1)
为了它的价值,你可以做到
1.+ rand 10