メソッド(関数とは少し違うよ)

2022年4月3日

関数とは少し違う

メソッドは、関数と似ているがちょっと違う。

ざっくり言うと 「型に振る舞いを追加して強化するもの」 なので、とりあえずメソッドを宣言する前に新しい型を宣言しておく必要がある。

…何のこっちゃ?

新しい型を宣言する

言語には元々いくつもの型が用意されているが、必ずしも自分が望む使い方が記述できるとは限らない。そこで自分で新しい型を宣言することによって、コードの意味が判りやすいくすると共にエラーを防ぎやすくすることができる。

次の例では、typeキーワードを使ってint型をベースにして新しいshowa型を宣言している。

type showa int

例として、


package main

import "fmt"

func main(){

        type showa int
        var myYear showa = 64

        fmt.Printf("%v\n", myYear)
}
64

メソッドの書き方

メソッドの書き方は関数とほとんど同じだが、関数では関数名の後ろに引数を記述するのに対し、メソッド名の前にレシーバーを記述するという違いがある。

// メソッドの定義
func (seireki int) convShowa() showa {
    return showa(seireki - 1925)
}

Posted by doka2000gt