
エントリーの編集

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
【Golang】Go言語の基礎 値レシーバーとポインタレシーバーについて - Qiita
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
【Golang】Go言語の基礎 値レシーバーとポインタレシーバーについて - Qiita
package main import "fmt" type Vertex struct { X, Y int } func (v Vertex) Area() int { return v.X... package main import "fmt" type Vertex struct { X, Y int } func (v Vertex) Area() int { return v.X * v.Y } //値レシーバー func (v Vertex) Scale(i int) { v.X = v.X * i v.Y = v.Y * i } func main() { v := Vertex{3, 4} v.Scale(10) fmt.Println(v.Area()) // => 12 } こちらは値レシーバになります。 めっちゃ乱暴にいうと*がなければ値レシーバーになります。値渡しとか言われるようです。 v.Scale(10)で引数を渡しており、Scale関数の中では v.X = 3 * 10 v.Y = 4 * 10 となります。 しかし、値渡しでは直接Vertexの中身を書