亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在結構中引用布爾值進行賦值

在結構中引用布爾值進行賦值

Go
墨色風雨 2021-11-01 17:31:15
type MyStruct struct {    IsEnabled *bool}如何更改 *IsEnabled = true 的值這些都不起作用:*(MyStruct.IsEnabled) = true*MyStruct.IsEnabled = trueMyStruct.*IsEnabled = true
查看完整描述

1 回答

?
暮色呼如

TA貢獻1853條經驗 獲得超9個贊

您可以通過將 true 存儲在內存位置然后訪問它來做到這一點,如下所示:


type MyStruct struct {

    IsEnabled *bool

}



func main() {

    fmt.Println("Hello, playground")

    t := true // Save "true" in memory

    m := MyStruct{&t} // Reference the location of "true"

    fmt.Println(*m.IsEnabled) // Prints: true

}

從文檔:


布爾、數字和字符串類型的命名實例是預先聲明的。復合類型——數組、結構、指針、函數、接口、切片、映射和通道類型——可以使用類型文字構造。


由于布爾值是預先聲明的,您不能通過復合文字創建它們(它們不是復合類型)。該類型bool有兩個const值true和false。這排除了以這種方式創建文字布爾值:b := &bool{true}或類似的。


應該注意的是,將 *bool 設置為要false容易一些,因為new()會將 bool 初始化為該值。因此:


m.IsEnabled = new(bool)

fmt.Println(*m.IsEnabled) // False


查看完整回答
反對 回復 2021-11-01
  • 1 回答
  • 0 關注
  • 210 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號