从
嵌套函数内部设置结构不起作用。
我已经尝试了文档中的示例:https://play.golang.org/p/Pw9f20zwja
type myStruct struct {
abrakadabra bool
}
func (f *ChangeMe) SetName(abrakadabra bool) {
f.abrakadabra = true
}
func something() {
var flag ChangeMe
f := new(ChangeMe)
copy := func(r io.ReadCloser, w io.WriteCloser) {
//...some code..
if err != nil {
f.SetName(true)
log.Println(flag.abrakadabra)
}
}
在日志打印中 - Abrakadabra 布尔值仍然为 false(起始值),为什么它不更改为 true?
你在 f
上运行 SetName,然后打印 flag 的值。 f 和 flag 是 ChangeMe 类型的两个不同值。
f.SetName(true)
log.Println(f.abrakadabra)
或
flag.SetName(true)
log.Println(flag.abrakadabra)