インスタンスメソッド・クラスメソッド・関数メソッド
スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
インスタンスメソッド
スポンサーリンク
インスタンスメソッドは、レシーバ(操作対象となるオブジェクト)に対して実行されるメソッドです。
レシーバ.メソッド名(arg1, arg2, arg3...)
と、レシーバに対してメソッドが適用されます。
こういった書き方の場合、操作の対象がすべてオブジェクトですので、関数ではなくメソッドと呼びます。
メソッドとは、クラス内に定義された関数のことです。
p 'Perl,JavaScript,C,Lisp'.split(',') puts "hello world"[6].chr puts "hello world".index('wor') puts [10, 20, 30].index(30) puts 98765.integer?
上記の例では、split, chr, index, integer? などがメソッドです。
「.」の前の部分が、レシーバとなります。
オブジェクトに対してメソッドが適用されると、操作後の値が返されます。
実行結果。
["Perl", "JavaScript", "C", "Lisp"] w 6 2 true
クラスメソッド
レシーバがオブジェクト(クラスのインスタンス)ではなくて、クラスそのものの場合に適用されるメソッドをクラスメソッドと呼びます。
クラスメソッドは、クラスに属するメソッドのことで、静的メソッドとも言われます。
array = Array.new(3) pattern = Regexp.new('version') now_time = Time.now p array puts pattern =~ "Test version" puts now_time
Array.new, Regexp.newのnewメソッド、Time.nowのnowメソッドなどは、インスタンスではなくてクラスに適用されています。
これらのメソッドをクラスメソッドと言います。
関数メソッド
レシーバがない(ように見える)メソッドを、Rubyでは関数メソッドといいます。
これまでも頻出している、puts, printなどは関数メソッドであり、またメソッド定義(関数・ファンクション)で定義したようなメソッドも、関数メソッドです。
スポンサーリンク
<< 前の記事 : メソッド定義(関数・ファンクション)
- - 関連記事 -
- メソッド定義(関数・ファンクション)
スポンサーリンク