構造体ではない型を持つ場合、ポインタ受信機で値を変更するにはどうすればよいですか?例えば、following codeを非構造体の値をポインタ受信機で変更する
を与えられた:
package main
import (
"fmt"
)
type MyInt int
func (i *MyInt) Change() {
newValue := MyInt(32)
i = &newValue
}
func main() {
myInt := MyInt(64)
fmt.Println(myInt)
myInt.Change()
fmt.Println(myInt)
}
それは出力:
64
64
は、なぜそれが、出力は以下ません。
64
32
?
です。私の混乱は、「* i」が「i」のアドレスに**値を取得する方法であり、したがって値を設定するために使用できないと考えることによって引き起こされました。なぜ私はそれを考えたのか分かりません。ありがとう。 – HenryTK