>> 連載の目次は こちら!
- とりあえず未分類な小さめのトピックをこちらに書いていく
- 随時更新する
- 個別に話が大きくなったら章立てする
■複数行のコメント
=begin
ほにゃらら〜
仕事し給え!
=end
■オブジェクトの型判定
str = "mojiretsu"
puts str.class # クラス名を取得
p str.is_a?(String) # あるクラスかまたはそのサブクラスのインスタンスか
p str.kind_of?(Object) # is_a? と同じ
p 3.14.instance_of?(Numeric) # あるクラスそのもののインスタンスか(サブクラスのインスタンスならfalse)
■モジュールがミックスインされているか
# is_a? は、サブクラスだけでなく、あるモジュールがincludeされている場合もtrue を返す
[1, 2].is_a?(Enumerable)
■オブジェクトの比較
equal? メソッドは、オブジェクトが同一かを判定する。
== 演算子は、Object クラスにおいては equal? メソッドの別名だが、たいていのクラスでは値そのものを比較するようにオーバーライドされている。Stringなども同様。
なので、例えば str1 == str2 は文字列の値を比較している。
■型キャスト
「to_ほにゃらら」メソッドがオブジェクトごとに定義されている
num = "1".to_i
str = 1.to_s
p num, str
■シンボル
単純にラベルやキーとして扱いたい特別なオブジェクトで、Stringに近い
sym = :mykey1 # :mykey1
str = sym.to_s # "mykey1"
sym = "mykey2".to_sym # :mykey2