我正在阅读 Ruby 教程,但我无法理解 += 语句。谷歌没有帮助,“Ruby +=”只搜索“Ruby”。
帮助表示赞赏。
样本:
num = -10
num += -1 if num < 0
puts num
#=> -11
Run Code Online (Sandbox Code Playgroud) 所以浮点运算是不精确的,但这并没有完全解释这里发生了什么:
[46] pry(main)> a=0.05
=> 0.05
[47] pry(main)> a=a*26.0/65
=> 0.02
Run Code Online (Sandbox Code Playgroud)
所以我们在这里得到了我们的期望,我们得到了正确的答案,世界不断变化.但是我们后来重写这个功能,我们这样做,而我们交换行a=a*26.0/65了a*=26.0/65是不是很好,我们输入一个字符少!让我们看看这对我们有何影响?
[48] pry(main)> a=0.05
=> 0.05
[49] pry(main)> a*=26.0/65
=> 0.020000000000000004
[50] pry(main)> 26.0/65
=> 0.4
Run Code Online (Sandbox Code Playgroud)
它表明a*=b与写作不同a=a*b.它似乎不是一个正常的浮点舍入误差,因为这些数字都不应该被舍入为浮点数(尾数应该足够长,每个26.0,26.0/65,65.0)
我确信引擎盖下有一些微妙的内容,想知道发生了什么?
可能重复:
"+ ="(加上等于)是什么意思?
以下是什么意思sum += square?这是什么意思?
sum = 0
[1, 2, 3, 4].each do |value|
square = value * value
sum += square
end
puts sum
Run Code Online (Sandbox Code Playgroud)