irbは値を表示

irbを使うときにはprintはいらないのね。

C:\WORK> irb
irb(main):001:0> print "Rubyco"
Rubyco=> nil                            Rubycoの部分はprintの結果でた文字で、nilは(print "Rubyco")の値
irb(main):002:0> "Rubyco"
=> "Rubyco"
irb(main):003:0>^D

absしてみる。

C:\WORK> irb
irb(main):001:0> -123.abs
=> 123
irb(main):002:0> x = 123
=> 123
irb(main):003:0> x = -123
=> -123
irb(main):004:0> -x.abs
=> -123
irb(main):005:0> (-x).abs
=> 123
irb(main):006:0>

ふうん。-123.absだと(-123).absの意味になるけれど、-x.absだと-(x.abs)になるんだね。きっと-123の-は数値リテラルの一部であり、-xの-は単項演算子なのだろう、と推測。ということは、--123.absは-123になるはずだ。はじめの-は単項演算子で、二個目の-は数値リテラルの一部。

C:\WORK> irb
irb(main):001:0> --123.abs
=> -123
irb(main):002:0>

やっぱりね。