[英]Execution order for GoLang Struct Initializer
想知道 GoLang 是否保證了結構初始化的執行順序。
以下代碼是否總是產生
obj.a == 1
和obj.b == 2
還是未指定的行為?
num := 0
nextNumber := func() int {
num += 1
return num
}
type TwoNumbers struct {
a int
b int
}
obj := TwoNumbers{
a: nextNumber(),
b: nextNumber(),
}
指定評估順序。
這些字段在復合文字表達式中分配。 該規范對一般表達式進行了說明:
...在計算表達式、賦值或返回語句的操作數時,所有 function 調用、方法調用和通信操作都按詞法從左到右的順序進行計算。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.