記事の目的
オブジェクトについてなんとなく理解しているつもりが全然理解できてないような気がしたので
超簡単にまとめておきたいと思った
オブジェクトとメソッドについて
- Rubyでは、
あらゆるものがデータをオブジェクトとする。 - 文字列やnilですらオブジェクト。
- オブジェクトに関する意味や定義は、本を読んだだけでは中々理解できない。
- 様々なオブジェクトの例に触れることで、「オブジェクトとは何であるか」という直感を養う必要がある。
逆に、オブジェクトが「何をするか」を説明するのは簡単だ。
オブジェクトとは (いついかなる場合にも) メッセージに応答するものである。
文字列のようなオブジェクトは、たとえばlengthというメッセージに応答できるが、これは文字列の文字数を返す。
ruby
>> "stalhow".length # 文字列に "length" というメッセージを送る
=> 7
- オブジェクトに渡されるメッセージは、一般には「メソッド」と呼ばれる。
メソッドの実体は、そのオブジェクト内で定義された関数。- Rubyの文字列は、次のようにempty?メソッドにも応答することができる。
ruby
>> "stalhow".empty?
=> false
>> "".empty?
=> true
empty?メソッドの末尾にある疑問符を確認。 Rubyでは、メソッドが「true」または「false」という
論理値 (boolean) を返すことを、「末尾の疑問符」で示す慣習がある。
論理値は、特に処理の流れを変更するときに有用。
ruby
>> s = "stalhow"
>> if s.empty?
>> "The string is empty"
>> else
>> "The string is nonempty"
>> end
=> "The string is nonempty"