在結構體中設定Bool 指標
在Go 中,當將指向bool 的指標傳遞給函數時,可以設定直接取得函數時,可以設定直接取得函數結構體中bool 欄位的值。然而,標準語法需要定義一個新的標識符,如下所示:
func check(is handler){} type handler struct{ is *bool } func main() { var x bool = true check(handler{is: &x}) }
要規避此要求並直接在結構體中將bool 指標設為true,有幾種方法:
選項1:使用切片
此方法建立一個具有單一bool 值true、indexes的切片它的第一個元素,並獲取其地址:
h := handler{is: &[]bool{true}[0]}
雖然這種技術避免了定義新變量,但它引入了不必要的樣板並在內存中留下了後備數組。
選項2 : 使用輔助函數
更最佳化的解法是建立一個輔助函數,產生一個有true 的bool 指標value:
func newTrue() *bool { b := true return &b }
使用此函數,在結構體中設定bool指標變成:
h := handler{is: newTrue()}
選項3:使用單行匿名函數
另一種方法涉及使用匿名函數在單一函數中完成相同的任務line:
h := handler{is: func() *bool { b := true; return &b }()}
選項4:具有匿名函數的變體
前一種方法的細微變化:
h := handler{is: func(b bool) *bool { return &b }(true)}
這些技術提供在結構體中將bool 指標設為true 的替代方案,無需額外的識別符或不必要的開銷。開發者可以選擇最適合自己需求和風格偏好的方法。
以上是如何在 Go 結構體文字中有效地將布林指標設為 True?的詳細內容。更多資訊請關注PHP中文網其他相關文章!