あらかじめ断っておきますが、オチはありません。
やっぱり「あらかじめ」は最初に使いたい。よく南武線に乗ってから、「京浜東北線が○○の理由により、現在運転を見合わせております。あらかじめご了承下さい。」などという放送がなされることがあるが、まったくあらかじめっていない。それならば、さっき先に来た反対方向、立川方面行きに乗って溝ノ口経由で行きたかった。
いきなり脱線してしまったが、Rubyの配列の要素数はsizeメソッドでもlengthメソッドでも良いらしい。ずっと何かの本にたまたま載っていたlengthを使っていたが、最近買ったRails本「Ruby on Rails入門―優しいRailsの育て方」ではsizeを使っていたのでアレっと思っただけです。
ひょっとして、全てのオブジェクトに実装されている?
irb(main):001:0> [1,2,3].size
=> 3
irb(main):002:0> [1,2,3].length
=> 3
irb(main):003:0> "123".size
=> 3
irb(main):004:0> "123".length
=> 3
irb(main):005:0> 123.size
=> 4
irb(main):006:0> 123.length
NoMethodError: undefined method `length' for 123:Fixnum
from (irb):6
from :0
irb(main):007:0> 123.5.size
NoMethodError: undefined method `size' for 123.5:Float
from (irb):7
from :0
irb(main):008:0> 123.5.length
NoMethodError: undefined method `length' for 123.5:Float
from (irb):8
from :0
Fixnumはsizeがあってlengthがない、Floatはどちらもないのが面白い。Fixnumのsizeは何を表すのだろうと思い、調べたら実装上のバイト数らしい。
irb(main):018:0> 1234567890.size
=> 4
irb(main):019:0> 12345678901.size
=> 8
irb(main):020:0> 12345678901234567890.size
=> 8
irb(main):021:0> 123456789012345678901234567890.size
=> 16
なかなか面白い。しかし、その理由ならFloatにsizeがあっても良いように思われるのだが。まぁ、配列と文字列以外では必要なさそうなので、深く考えない事にしよう(オチなし)