gpt4 book ai didi

ruby - 在 block 中进行后增量有什么问题

转载 作者:太空宇宙 更新时间:2023-11-03 17:34:45 24 4
gpt4 key购买 nike

这是触发错误的代码:

#!/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,如果有的话。

最佳答案

Ruby 没有后自增运算符。

下面的语句

v++
v

相当于

v + (+v)

改用v += 1。 (这不是您可能知道的后增量。)

关于ruby - 在 block 中进行后增量有什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20549634/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com