Ruby反省

Rubyで簡単なCGIを作った際にしょっぱいミスが多かったので、メモを残しておく。

数値と文字列を連結する際には、数値をto_sで文字列に変換する

行末のセミコロンは不要

入力末尾の改行コードはchompで捨てる

ループのための構文は

  • loop do
  • N.times
  • N.times do - end
  • N.step(limit, step)
  • for i in [ begin..limit | begin...limit ] - end
  • array.each

アクセサメソッド宣言

  • attr_accessor :valueName[,:valueName]?

モジュールってなんぞや

インスタンスの生成ができない。メソッドや定数の定義のみ可能。
Rubyは多重継承禁止なので、代替手段として。(Mix-in)
数学的な(Mathなど)メソッドの分離、定数名の衝突回避。(名前空間
読み込み順はスーパークラス>モジュール>サブクラス

メソッドの可視性

クラス外(トップレベル)はデフォルトprivate。
クラス内はデフォルトpublic。
変数はデフォルトprivate。

変数

インスタンス変数は@value
クラス変数は@@value
グローバル変数は$value

Javaの無名クラスとかインナークラスとか

実際の利用場面とか状況とセットで考えないとサッパリ。
参考に出来そうなコードを見つけたい。