猿问

如何从嵌套函数修改 struct boolean?

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

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


慕娘9325324
浏览 149回答 1
1回答

莫回无

您在 f 上运行 SetName,然后打印标志中的值。f 和 flag 是 ChangeMe 类型的两个不同值。f.SetName(true)log.Println(f.abrakadabra)或者flag.SetName(true)log.Println(flag.abrakadabra)
随时随地看视频慕课网APP

相关分类

Go
我要回答