私はRubyの新機能です。私は空値を得ている理由を、私は見ていないので、そもそもそこに10を割り当てた.I a ==12
ため私は値を割り当てても、なぜ空値の表現を得ているのですか?
a = 10
while a < 20 do
puts "True"
a++
next unless a == 12
puts "This is not 12"
end
$end
しかし、私は取得しています空値式:私は、次のコードブロックを持っています。
私はRubyの新機能です。私は空値を得ている理由を、私は見ていないので、そもそもそこに10を割り当てた.I a ==12
ため私は値を割り当てても、なぜ空値の表現を得ているのですか?
a = 10
while a < 20 do
puts "True"
a++
next unless a == 12
puts "This is not 12"
end
$end
しかし、私は取得しています空値式:私は、次のコードブロックを持っています。
a++
をa += 1
に変更してください。
Rubyには++
演算子がありません。 No increment operator (++) in Ruby?
と仮定
a = 2
次は5
を返し、すべての等価です。
a++ 3
a + +3
a + +
3
a++
3
したがって、
a++
next unless a == 12
は
a + +next unless a == 12
next unless a == 12
が(メソッド:+
に送信される)の値を返さないので、これは"void value expression"
例外を発生さと同じです。
修正は、もちろん、
a = a + 1
またはその省略形でa++
を交換することである
a += 1
'++' Rubyで存在していないオペレータ – Ursus
'$のend'を引き上げます'aa'が' a + = 1'に置き換えられた場合の例外 –