もしプログラム経験を持っており

もしプログラミング経験を持っており、Rubyの概要を手早く知りたいのなら、 FAQを参照してください。

この文章を見つけるよりさきにチュートリアルをよんだ(笑

  • {} と書くと空のハッシュが生成される場合と空のブロックとして扱われる場合がある
  • "a + b"a.+(b) というメソッド呼び出しで足し算が実施され、"a +b""a.+b()" というメソッド呼び出しでエラーになる。
  • ローカル変数は使うより前に代入文が存在していないと構文エラー*1
  • String クラスに破壊的メソッドがある*2
  • include したメソッドより自クラスのメソッドが優先*3

あたりは気をとめておかないといけないかんじがする。

*1:構文解釈時に既存でないローカル変数の参照は、構文解釈結果がローカル変数の参照ではなくメソッド検索になるため。よって、代入は実行されている必要はなく、構文解釈されたローカル変数への参照が存在すればよい。

*2:参照の複製を残しておいても、それが値の複製ではなくなる場合がある。! が付いてない破壊メソッド << や concat もある。

*3:優先順を確認したいときは クラス名.ancestors を見ればよい、extend にも注意。