2006-02-22
Ruby.each
- Reference URI
- http://lowreal.net/logs/2006/02/22/1
- Written Time
- 2006-02-22T01:58:21+09:00
- Tags
-
- ruby
- js
Ruby の each 系メソッドで一つ気に入らないというか、仕方ないんだけど面倒くさいことがある。なにかっていうと index を使いたければ自分で変数作ってインクリメントしないといけないこと。each だけに関しては each_with_index があるけど、他の Enumerable なメソッドにはない。そんなに必要なわけじゃないし、だいたいは他のもっといい書き方が存在するんだけど、prototype.js の each 系を見てから、ちょっと不便だなぁって思うようになった。
prototype.js の each 系は全て index と item が両方渡される。でも、受け取る側の関数は仮引数を常に2個書かなくてもいい。ECMAScript は引数の数に無頓着だ。いくら渡しても怒られない。仮引数を書かなくても arguments で参照できる。
対して Ruby の yield はエラーこそ出さない (call は出す) ものの、こういうことすると警告してくれちゃう。別にそれが悪いわけじゃなくて、むしろいいんだけど、っていうか block.arity で場合わけすればいいんだけど。
なにがいいたいかわからんことに。
arity の数で場合わけしたらだめか。[[:a, :b]].each {|a, b|} みたいに使えないもんなぁ。
Inserted at 2006-02-23T11:36:19+09:00
Trackback URI: http://lowreal.net/logs/2006/02/22/1.trackback
NULL
Generated with Taglibro
この日記は Taglibro と呼ばれる XML ベースの XSLT をテンプレートとして使ったシステムを使っています。現在の Taglibro は Ruby, ruby-xslt, libxml-ruby による実装です。ソースコードはとりあえず公開していません。
Comments (2)