メソッド(関数とは少し違うよ)
関数とは少し違う
メソッドは、関数と似ているがちょっと違う。
ざっくり言うと 「型に振る舞いを追加して強化するもの」 なので、とりあえずメソッドを宣言する前に新しい型を宣言しておく必要がある。
…何のこっちゃ?
新しい型を宣言する
言語には元々いくつもの型が用意されているが、必ずしも自分が望む使い方が記述できるとは限らない。そこで自分で新しい型を宣言することによって、コードの意味が判りやすいくすると共にエラーを防ぎやすくすることができる。
次の例では、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)
}