【Ruby】関数とメソッドの違い
2023/01/31
関数とメソッドの違いを聞かれて「同じでしょ」と答えてしまったけど、厳密には違いがあったのでここにメモしておく
関数とメソッドの違い
関数
何かしらの処理をひとまとめにしたもの
引数を受け取ったり、戻り値を返したりもする(もちろんなくても良い)
メソッド
オブジェクトに結びつけられた関数
Ruby における関数
全てがオブジェクトとなる Ruby では、メソッドと呼ぶのが正しい
puts
は組み込み関数と思いきや、 Kernel
モジュールに定義されているのでメソッドである
結論
- Ruby (オブジェクト指向言語)において、関数とメソッドは厳密には違う
- メソッドはオブジェクトに結びつけられた関数のこと
- Ruby は全てがオブジェクトなので、メソッドと呼ぶのが正しい
- とはいえ、メソッドも関数のことなので、関数と読んでも間違いというわけではない
- 関数とメソッドの違いを聞かれてもちゃんと答えられるようにしておきたいねという話