Code Fix

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

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

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

 1  package main
 2  
 3  import "fmt"
 4  
 5  type Tank struct{ Fuel int }
 6  
 7  func (t ______) Fill() { t.Fuel += 30 }
               ^
 8  
 9  func main() {
10  	t := Tank{Fuel: 20}
11  	t.Fill()
12  	fmt.Println(t.Fuel)
13  }
出力: 20

空欄を埋めて実行を通す

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

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

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

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

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