関数とメソッドの違いがわからなくて少し調べたので自分なりにまとめてみた

  • 24
    いいね
  • 1
    コメント
この記事は最終更新日から1年以上が経過しています。

はじめに

関数とメソッドの違いがわからなくて少し調べたので自分なりにまとめてみました

私は現在、Qiitaで初心者向けのSwiftの初心者向けの記事を月に1回程度、自分のSwiftへの理解を深めることと、プログラムについて再認識の意味も込めて投稿しています。
その中で関数について書こうと思ったときに「どういう内容を書こう」と考えていました。

・初心者向けの記事だからあまり難しく書かない
・プログラムを書くって思っているほど難しくないよ、楽しいよ!と思ってもらえるように

というのが記事を投稿するにあたって常に考えて投稿するようにこころがけています。

あと、一応プログラム書いたりを仕事にはしていますが、まだまだ勉強不足なので多分認識が間違っている事をツッコんでくださる方がいたら嬉しいなとかも思っています。

前置きが長くなりましたが自分なりの解釈をSwiftをベースにまとめていきます!

結論 似ているようで違う...らしい

以下IT用語事典より抜粋

・関数 【 function 】 ファンクション

関数とは、引数と呼ばれるデータを受け取り、定められた通りの処理を実行して結果を返す一連の命令群。
必ずしも数字を扱うものだけを指すのではなく、「入力された文字を画面に表示する関数」なども存在する。
言語によっては引数を取らない関数や結果を返さない関数を作成できるものもあるが、通常はそうしたものは関数とは呼ばないことが多い。

IT用語事典 関数

・メソッド 【 method 】 メンバ関数 / member function

メソッドとは、オブジェクト指向プログラミングにおいて、各オブジェクトが持っている自身に対する操作。
オブジェクトは「データ」と「手続き」から成っているが、その「手続き」の部分に当たる。
プログラミング言語によっては「メンバ関数」と呼ばれることもある。

IT用語事典 メソッド

うん?

オブジェクトは「データ」と「手続き」から成っているが、その「手続き」の部分に当たる。

???

sono tetsudukino bubunn ni ataru?

関数の説明の部分に

関数とは、引数と呼ばれるデータを受け取り、定められた通りの処理を実行して結果を返す一連の命令群。

ん、ナニガチガウノ?

「手続き」と「一連の命令群」って中卒のバカな頭だと同じもののように聞こえます...

google先生に聞いてみた

「関数 メソッド 違い」で検索してブログやら教えて!gooやらをみて説明を読んでもあまり理解できなかったのですが、IT用語事典の

メソッドとは、オブジェクト指向プログラミングにおいて、各オブジェクトが持っている自身に対する操作。

うん、これがミソっぽいですね(多分)

オブジェクト指向プログラム言語で定義されたオブジェクト(クラスや構造体など)で定義された関数と同じような書き方をされたものがメソッドと呼ばれる、それ以外のものは関数と呼ぶ。

違うかもしれませんが私はそういう解釈をしました

例えばSwiftだと

関数

function.swift

    // 関数の定義
    func sum(a:int, b:int) -> int {
        return a + b
    }

    // 関数呼び出し
    let c = sum(a:3, b:4)
    print(c)

メソッド

method.swift

    class Math {
        // メソッドの定義
        static func sum(a:int, b:int) -> int {
            return a + b
        }
    }

    //メソッド呼び出し
    let c = Math.sum(a:1, b:5)
    print(c) 

という感じになるんでしょう!

おわりに

解釈は間違っているかもしれませんが、ふわふわしてた部分をきちんと調べて一応自分なりに解釈できたのは良かったなと思っています。
今回調べた事をもとに初心者向けの記事を更新したいと思います。

お前その解釈間違ってるよ!とかそういうのありましたらコメントいただけると非常に嬉しいです!

ちなみに、初心者向け記事の投稿には以下の書籍を参考にしながらgoogle先生やらなんやらで調べつつ、なるべく間違いのないように書いてるつもりです

詳解Swift 改訂版
スクリーンショット 2016-01-05 14.53.25.png

おしまい