Rubyのメソッド引数はおいくつまで?
RTで流れてきた @uupaa の「引数が100個を超えると~」をだしに、Rubyのメソッド(関数みたいなものだよ!)の引数の個数の限界を調べようとしてみた一連の流れ。
ArcCosine💉💉💉💉💉
@ArcCosine
@uupaa 長すぎるコード http://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.10.1.list
2011-02-01 17:40:06
もう暑くってェ グッタリしちゃってェ…んじに🐈にゃーん🍓🫐🍅🌽🍈🍆🥒🍇🦝
@uupaa
@ArcCosine (ε・◇・)з 引数が125個で1万行ぐらいのCで書かれた闇関数をしっておりまふ
2011-02-01 17:45:04
もう暑くってェ グッタリしちゃってェ…んじに🐈にゃーん🍓🫐🍅🌽🍈🍆🥒🍇🦝
@uupaa
(ε・◇・)з 引数が100個超えるとコンパイラが「おまえ正気か?」風味な警告だすんやで~
2011-02-01 17:47:46
にゃんだーすわん
@tadsan
Ruby1.9のメソッドは117個まで引数を取れるらしい。が、こんなに引数を要求するならふつうはArrayかHashを使ふよなあ。 http://ideone.com/pWkQL
2011-02-01 18:22:41
にゃんだーすわん
@tadsan
ideoneでは1583で打ち切られたけど、「Rubyに引数の制限はない」がFAなのかな。 http://ideone.com/RIrrR
2011-02-01 18:27:43
斎藤ただし, Tadashi Saito
@_tad_
@tadsan @mickey24 変数名にかならず(キーワードに出てこない)"_"を入れるようにして自分で試したら、1.9.2ではざっと4500引数超えても大丈夫ですね。
2011-02-01 18:27:49
にゃんだーすわん
@tadsan
註釈: next! は 'a'なら'b'、'1'なら'2'、'ax'なら'ba'と変換してくれる、Rubyの超べんりメソッド。
2011-02-01 19:03:33
にゃんだーすわん
@tadsan
註釈: 「予約語」プログラムで変数名につかっちゃだめな文字のこと。Rubyだと "do" が変数名に使用できない(メソッド名にはできるよ!)。
2011-02-01 19:05:46
にゃんだーすわん
@tadsan
註釈: 最初のコードが117個で止まってしまった理由: a,b,c,...,aa,ab,ac,...,da,db,dc,...といっぱい文字列を作ってevalで実行して、dl,dm,dnときたことろで doはプログラム的に意味のある単語なので構文エラーになりましたとさ。
2011-02-01 19:16:23