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

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

if 語句中的結(jié)構(gòu)初始化

if 語句中的結(jié)構(gòu)初始化

Go
富國滬深 2021-08-10 10:37:41
我想檢查一個(gè)結(jié)構(gòu)是否為空,即它的所有字段是否都設(shè)置為其默認(rèn)值。以下按預(yù)期工作:package mainimport "fmt"type MyStruct struct {    field1 string    field2 int}func main() {    var mine MyStruct    empty := MyStruct{}    // Check if mine is empty.    if mine == empty {        fmt.Print("mine is empty")    }}我想稍微縮短一下,所以我將空結(jié)構(gòu)初始化移動(dòng)到 if 語句中:func main() {    var mine MyStruct    // Check if mine is empty.    if mine == MyStruct{} {        fmt.Print("mine is empty")    }}但這不起作用:syntax error: unexpected }, expecting := or = or comma. 盡管看起來與第一個(gè)示例幾乎相同,但即使以下內(nèi)容也不起作用:func main() {    var mine MyStruct    // Check if mine is empty.    if empty := MyStruct{}; mine == empty {        fmt.Print("mine is empty")    }}編譯器說:syntax error: need trailing comma before newline in composite literal。但是,我發(fā)現(xiàn)以下代碼可以工作:func main() {    var mine MyStruct    // Check if mine is empty.    if mine == *new(MyStruct) {        fmt.Print("mine is empty")    }}有人可以解釋為什么編譯器不接受上述兩個(gè)示例嗎?當(dāng)我們在做的時(shí)候:檢查“空”結(jié)構(gòu)的慣用方法是什么?最后一個(gè)例子有效,但對我來說看起來有點(diǎn)奇怪。
查看完整描述

1 回答

  • 1 回答
  • 0 關(guān)注
  • 265 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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