職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

関数とメソッドの違い

2023年07月12日 | GO言語
関数とメソッドの違い


【開発環境】
OS:Win11(64ビット)
go version go1.19.4 windows/amd64
VSCode1.72.2、及びコマンドプロンプト

◆関数
サンプルファイル「main.go」
//構造体
type Square struct {
X, Y int
}
//関数
func Area(s Square) int {
return s.X * s.Y
}
//メイン
func main() {
s := Square{5, 5}
fmt.Println(Area(s)) // >>25
}

◆メソッド
メソッドとは、関数に値を結びつけたものを言う
サンプルファイル「main.go」
//構造体
type Square struct {
同じコード
}

//メソッド
// sはレシーバ(構造体型変数)
//メソッドArea()に引数を書いてはいけない!
func (s *Square) Area() int {
return s.X * s.Y
}
//
func main() {
s := Square{5, 5}
 //メソッドで
fmt.Println(s.Area()) // >>25
}
・Area(s Square)の部分が↑の型に紐づくを実装している部分
・こうすることでAreaは構造体:Squareの持ち物となり、s.Area()として呼び出すことができる。これがメソッド。
・この紐づけた構造体(型)のことをレシーバ(receiver)と呼ぶらしい
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする