考慮下面的代碼:是否將字段分配推遲爲競賽狀態?
type foo struct {
bar string
}
func f() *foo {
ret := &foo{"before"}
defer func() { ret.bar = "after" }()
return ret
}
func main() {
fmt.Println(f()) // prints "&{after}"
}
的動機是不必返回一個結構,但一些字段需要被返回之前只設置(例如,當功能完成的時間戳)。
推遲領域分配的競爭條件? 它是慣用的嗎? 有沒有更好的方法?
沒有什麼這裏Concurrent公司的,所以不能有任何種族。 – JimB
@JimB謝謝。這是慣用的還是有更好的方法來做到這一點? – ale64bit
做什麼?目標是什麼?沒有理由不能在延遲陳述中設置變量,但是它是否符合習慣取決於您的目標。 – Flimzy