Code Fix

上級値レシーバのメソッドは呼び出し元の値を変更しない › パターン1

値レシーバのメソッドは呼び出し元の値を変更しない

値レシーバで定義したメソッドは、レシーバのコピーに対して操作を行います。

 1  package main
 2  
 3  import "fmt"
 4  
 5  type Counter struct{ N int }
 6  
 7  func (c _________) Inc() { c.N++ }
                ^
 8  
 9  func main() {
10  	c := Counter{N: 0}
11  	c.Inc()
12  	fmt.Println(c.N)
13  }
出力: 0

空欄を埋めて実行を通す

広告
広告スロット(未設定)

値レシーバのメソッドは呼び出し元の値を変更しない

メソッド内でフィールドを変更しても、呼び出し元の元の変数には反映されません。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)