Ruby KoansでTDDを学ぼう・・からmacでrubyのドキュメントをさくっと引けるように設定した
昨日の記事でなんとか自動実行環境が整ったので・・・
Learn Ruby with the NEO RUBY KOANS とは
穴埋め問題のようにテストケースにある穴を塞いでいくことで、Rubyを学べる教材、みたい。
簡単な英語が読めればコメントにあるヒントを元に問題を解いていける。。
ハズなんだけど・・
いきなり2問目でつまづいた・・
【問題】nilについて
def test_nil_is_an_object assert_equal __, nil.is_a?(Object), "Unlike NULL in other languages" end
__のところにテストが正しくなるように穴埋め・・なんだけど・・・ 意味が分からん;;
nil.is_a?(Object)
がなんなのかを埋めろ・・ってことなので
irbで実行してみる
$ irb > nil.is_a?(Object) => true
おお! trueを入れろと・・いうこと??
わからんかったらirbに聞いてみろってことか。。
↓ヒント・・ていうかまんま答えを教えてくれたサイト
Ruby Koans Answers (via @AstonJ)
つまり、「RubyではnilはObjectである。(他の言語とは違って)」って意味か。。 なるほど。。
nilについて(irb先生に聞いてみた)
- nilオブジェクトに対して、メソッドコールすると NoMethodErrorが発生する
- その時のエラーメッセージは "undefined method"
- nil.nil? は true
- nil.to_s は ""
- nil.inspect は "nil"
inspectとは
inspectメソッドは、オブジェクトを分かりやすい文字列にして返します。
あれ??なんかおかしいな;;
nil.to_sとnil.inspect返ってくる値違うんだけど;;
Ruby リファレンスを引けるようにする (mac)
- Dashインストール
- DocsetにRuby 2を追加
nil.inspectで引くとこんな感じ
Always returns the string "nil"
だそうな。。
参考:
human readableな文字列を返す、から。らしい。
なるほど。うむうむ。 大分環境が整って来たぞ♪