第34回 気になるRubyの文法規則
Perlは弱い型付けだけどRubyは強い型付け
1 + "1"
は文法エラー。
1 + "1".to_i
で明示的に型変換しないといけない。
暗黙的に型変換されるのは、 puts のときに to_s が裏で呼ばれていたり、
整数と小数点の足し算のときなどがあるみたい。
だから全部が全部 強い型付けになっていて、型変換絶対してやんないからってことにはなってないみたい。
配列を引数にするとき
Perlだと、リファレンスで渡してやらないと、配列が展開されてしまう。
Rubyだと配列はそもそも参照で扱ってるので、ちゃんと渡せる。
ん〜でもPerlみたいに展開してほしいときってない? (個人的には、そんなときはないけど....)
そういうときは配列の前に * を付ければいいみたい。
hoge *a
みたいに。
クラスの作りかた
class end の中にはけっこうなんでも書けるみたい。普通に処理とか書けちゃう。
けど、他の言語みたいにメソッドを定義していくのが一般的。
暗黙的にselfってのがある。
class Foo p self def hoge; p self end end puts '----------------' Foo.new.hoge
結果:
Foo ---------------- #<Foo:0x291bc>
ちなみに、インスタンス変数は @ を変数名の前に付けるけど、
initializeとかメソッドの中に書かないとインスタンス変数と見なしてくれない。
メソッドの外に書かれたやつとは別物。