如何修改嵌套函数的结构布尔值



嵌套函数内部设置结构不起作用。

我已经尝试了文档中的示例: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)

最新更新