Code Fix

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

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

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

 1  package main
 2  
 3  import "fmt"
 4  
 5  type Wallet struct{ Balance int }
 6  
 7  func (w ________) Deposit() { w.Balance += 10 }
                ^
 8  
 9  func main() {
10  	w := Wallet{Balance: 100}
11  	w.Deposit()
12  	fmt.Println(w.Balance)
13  }
出力: 100

空欄を埋めて実行を通す

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

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

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

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

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