从嵌套函数内部设置结构不起作用。
我已经尝试过文档中的示例: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)
关于go - 如何从嵌套函数修改struct boolean?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53936182/