首頁 > 後端開發 > Golang > 如何在 Go 結構體文字中有效地將布林指標設為 True?

如何在 Go 結構體文字中有效地將布林指標設為 True?

DDD
發布: 2024-12-02 09:21:12
原創
156 人瀏覽過

How Can I Efficiently Set a Bool Pointer to True within a Go Struct Literal?

在結構體中設定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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板