以下是触发错误的代码:
#!/home/yuri/.rbenv/shims/ruby
a = []
a += [1, 2, 3].map { |v|
v++
}
这就是它所说的:
/home/yuri/_/1.rb:5: syntax error, unexpected '}'
这一次运行没有错误:
#!/home/yuri/.rbenv/shims/ruby
a = []
a += [1, 2, 3].map { |v|
v++
v
}
但是这不是:
#!/home/yuri/.rbenv/shims/ruby
a = []
a += [1, 2, 3].map { |v|
v++ if false
v
}
输出:
/home/yuri/_/1.rb:6: syntax error, unexpected '}', expecting keyword_end
有没有办法解释这种行为?或者至少,如何避免它?我正在运行ruby-2.0
,如果有的话。
答案 0 :(得分:5)
Ruby没有后增量运算符。
以下声明
v++
v
相当于
v + (+v)
请改用v += 1
。 (这可能不是你可能知道的后增量。)