From: Shin-ichiro Hara Date: 1997-04-29T23:06:47+09:00 Subject: [ruby-list:2872] Re: [BUG] File.size 原です。 > まつもと ゆきひろです > perlでは0が偽なので,-sを「ファイルサイズを返す演算子」とし > ても,「ファイルサイズが0でないという述語」としても使うこと > できますよね.rubyで同じことをしようと思えば,File.sizeがサ > イズ0の時にFALSEを返すのが一番簡単だったわけです.というわけ > で,File.sizeは「ファイルサイズが0であるかどうか判定する述語 > (0でない時サイズを整数で返す)」としておいてください. なるほど、perl の if (-s $filename) にあわせた訳ですね。 しかし、if File.exist?(filename) && File.size(filename) > 0 と 書くのが ruby 風のような気がしますが。 今の仕様だとたとえばファイルサイズによるソートが、 files.sort { |x, y| (File.size(x) || 0) <=> (File.size(y) || 0) } などと書かなくてはいけなくてあまりかっこよくない。