Rake

http://www2s.biglobe.ne.jp/~idesaku/sss/tech/rake/
会社がMakeを辞めてRakeにしよう!っていう流れなので一生懸命Rubyを覚えなければいけなくなった。


そしていきなり[シンボル]という概念でつまづく。
":"とか検索しづらいんだよね!
それに":"がシンボルという名前であることをあの巨大な仕様の膨大な資料から知るのは難しいんじゃないかなぁ。


まぁ近くにRubyやってる人が居れば聞けばいいのだけれどもいかんせん不親切すぎる気がしないでもない。


ちょこちょこと調べてみたけど、「シンボルは文字列みたいなもの」とかいう説明はちょっと変じゃない?
"文字列を代表する値を保持する型"(文字列では無い)ですよね。

hash = {:default=>"hello"}

p hash[:default]  #--> hello
p hash["default"] #--> nil
p hash["default".intern] #--> hello

初心者がうっかり使うとバグりそうな感じ。
ハッシュに文字列でアクセスしたら内部で勝手にinternしてくれてもよさそうなもんですけど。


それとたまたまinternした値と同じ数値が与えられた場合って衝突しそうな気がするんだけどどうなるんだろう。
型が違うから衝突しないのかな。
よくわからん。