第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如何查找未分配的結(jié)構(gòu)字段

如何查找未分配的結(jié)構(gòu)字段

Go
哈士奇WWW 2023-05-04 17:45:44
type Student struct{    Name string    No int}student:=Student{    Name:"Lily",}那么,我怎么知道學(xué)生的字段“否”沒有分配呢?
查看完整描述

5 回答

?
qq_花開花謝_0

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個贊

如果你定義No為整數(shù),那么如果它沒有被賦值,golang 會將它設(shè)置為0(默認(rèn)值),這有時會根據(jù)你使用它的目的而造成混淆(例如,if0是 的有效值No)。


如果你真的想檢查是否Student.No已分配。我認(rèn)為最好使用Pointer。


type Student struct{

? ? Name string

? ? No *int

}


student:= Student{

? ? Name:"Lily",

}


if student.No == nil {

? ? fmt.Println("student.No is not defined")

}


student2 := Student{

? ? Name: "Bob",

? ? No: func(i int) *int{ return &i}(5),

}


if student2.No != nil {

? ? fmt.Printf("student.No is %d\n", *student2.No)

}


查看完整回答
反對 回復(fù) 2023-05-04
?
慕工程0101907

TA貢獻(xiàn)1887條經(jīng)驗(yàn) 獲得超5個贊

您將變量定義為指針變量


type Student struct{

    Name string

    No *int

}


student:=Student{

    Name:"Lily",

}

在這種情況下,如果你這樣做


if student.No==nil{

    fmt.Println("Yes I'm unassigned")

}

它會打印


Yes I'm unassigned

我們可以在解組 json 時使用這種技術(shù),以查明是否提供了一個字段,以及在掃描可為 null 的值表單數(shù)據(jù)庫時。要取回價值,您必須使用


*student.NO 


查看完整回答
反對 回復(fù) 2023-05-04
?
茅侃侃

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超21個贊

該字段將具有該數(shù)據(jù)類型的零值。在本例中為 0。您的支票將如下所示:

student.No == 0

起初這看起來有點(diǎn)奇怪。但在這種情況下,0作為數(shù)字的 a 作為有效的學(xué)生編號沒有意義。


查看完整回答
反對 回復(fù) 2023-05-04
?
繁星coding

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個贊

Go 中的每種數(shù)據(jù)類型都有自己的“零值”。所以,在No(?number) 的情況下,它是0.?您可以檢查 的值是否No0


查看完整回答
反對 回復(fù) 2023-05-04
?
眼眸繁星

TA貢獻(xiàn)1873條經(jīng)驗(yàn) 獲得超9個贊

如果不手動比較結(jié)構(gòu)的每個字段,就沒有其他方法可以檢查是否設(shè)置了某個值。


這就是為什么在stdlib許多包中都有方法的原因New...。


例如bufio.NewWriter(),包的作者負(fù)責(zé)根據(jù)自己的用例使用一些合理的默認(rèn)值初始化結(jié)構(gòu)。


// NewStudent returns new Student instance

func NewStudent() *Student {

    return &Student{Name: "defaultName", No: 7}

}

即使Student導(dǎo)出類型,您的包用戶也應(yīng)該New...使用任何結(jié)構(gòu)。


還有另一種方法可以解決這個問題,但對于許多程序來說可能過于復(fù)雜,但您可以在此處和此處閱讀有關(guān)它們的信息。


查看完整回答
反對 回復(fù) 2023-05-04
  • 5 回答
  • 0 關(guān)注
  • 187 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號