- 2013/10/20 Sun
-
Redmineのカスタマイズを日がな一日。
Rubyの読み書きはえらい久し振りでした。
というか、現在使用しているWindows環境にはRubyがインストールすらされていなくて驚いた。
PerlとPythonはWindows/Linux環境どころか、Android携帯にまでインストールしてあるってのに。
ソート処理をいじってて気になったこと。
<=>演算子とよくペアで使用されるnonzero?メソッドは"!= 0"とは異なる動きをするけど、zero?メソッドは"== 0"と同じ動きなんですね。p 0 != 0 p 1 != 0 p 0.nonzero? p 1.nonzero? # false # true # nil # 1
p 0 == 0 p 1 == 0 p 0.zero? p 1.zero? # true # false # true # false
最初すごい違和感あったけど、0が真として扱われるRubyならではなのか。Numeric - Rubyリファレンスマニュアル
http://ruby.kyoto-wu.ac.jp/documents/ruby-man-ja/Numeric.htmlnonzero?
ゼロの時nilを返し、非ゼロの時 self を返します。zero?
ゼロの時、真を返します。