我需要等到 x.Addr 更新,但似乎 for 循环没有运行。我怀疑这是由于 go 调度程序造成的,我想知道为什么它会以这种方式工作,或者是否有任何方法可以修复它(没有通道)。
package main
import "fmt"
import "time"
type T struct {
Addr *string
}
func main() {
x := &T{}
go update(x)
for x.Addr == nil {
if x.Addr != nil {
break
}
}
fmt.Println("Hello, playground")
}
func update(x *T) {
time.Sleep(2 * time.Second)
y := ""
x.Addr = &y
}
紫衣仙女
相关分类