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

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

如何使用追加或不追加將更多數(shù)據(jù)添加到結(jié)構(gòu)中?

如何使用追加或不追加將更多數(shù)據(jù)添加到結(jié)構(gòu)中?

Go
函數(shù)式編程 2023-03-29 17:03:59
那么我們可以使用 Golang 內(nèi)置的 append 方法將更多數(shù)據(jù)添加到定義的結(jié)構(gòu)中。例如type aclStruct struct { acl string} a := []aclStruct{aclStruct{"A"}, aclStruct{"B"}} a = append(a, aclStruct{"C"})毫無疑問它的工作。但是當(dāng)我嘗試不使用 append 方法時(shí),它會(huì)產(chǎn)生錯(cuò)誤。例如我想做的是:a := append(aclStruct{"A"}, aclStruct{"B"}, aclStruct{"C"})甚至不確定它是否是 struct 的正確方法,因?yàn)樵跀?shù)組上它工作正常。還有沒有使用 append 的方法可以做到這一點(diǎn)嗎?有幫助嗎??
查看完整描述

3 回答

?
千巷貓影

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

甚至不確定它是否是 struct 的正確方法,因?yàn)樵跀?shù)組上它工作正常。

append 函數(shù)將元素追加到slice的末尾。

結(jié)構(gòu)是靜態(tài)聲明的。在 Go 中根本沒有辦法更改它們的結(jié)構(gòu)以在運(yùn)行時(shí)向它們添加字段。

如果您想要一片 structs,您可以使用它來跟蹤結(jié)構(gòu)的多個(gè)表示,可能具有不同的數(shù)據(jù)點(diǎn),您可以通過多種方式構(gòu)建該結(jié)構(gòu):

  • 使用append,確保傳遞的第一個(gè)參數(shù)是一個(gè)(可能是空的)切片:

    a?:=?append([]aclStruct{},?aclStruct{"A"},?...)
  • 聲明切片變量a并將其傳遞給append

    var?a?[]aclStruct{}
    a?=?append(a,?aclStruct{"A"},?...)
  • 使用內(nèi)聯(lián)值聲明和初始化切片:

    a?:=?[]aclStruct{{"A"},?{"B"}}

    請(qǐng)注意,您不需要為每個(gè)切片元素重新指定具體類型,因?yàn)樗梢詮那衅念愋椭型茢喑鰜恚?/p>


查看完整回答
反對(duì) 回復(fù) 2023-03-29
?
阿晨1998

TA貢獻(xiàn)2037條經(jīng)驗(yàn) 獲得超6個(gè)贊

如果要聲明三個(gè)元素的切片,請(qǐng)使用: a := []aclStruct{aclStruct{"A"}, aclStruct{"B"}, aclStruct{"C"}}

append應(yīng)該用于修改當(dāng)前存在的切片(它附加到切片)。它拋出一個(gè)錯(cuò)誤,因?yàn)榈谝粋€(gè)參數(shù)應(yīng)該是一個(gè)切片。

如果你想使用它:

var a []aclStruct append(a, aclStruct{"A"})

GoDoc 很好地回答了這個(gè)問題:

func append(slice []Type, elems ...Type) []Type

append 內(nèi)置函數(shù)將元素追加到切片的末尾。如果它有足夠的容量,則重新切片目的地以容納新元素。如果沒有,將分配一個(gè)新的底層數(shù)組。Append 返回更新后的切片。因此有必要存儲(chǔ)追加的結(jié)果,通常在保存切片本身的變量中:

slice = append(slice, elem1, elem2) slice = append(slice, anotherSlice...)


查看完整回答
反對(duì) 回復(fù) 2023-03-29
?
達(dá)令說

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊

append 的第一個(gè)參數(shù)必須是一個(gè)切片,所以正確的做法是: a := append([]aclStruct{aclStruct{"A"}}, aclStruct{"B"}, aclStruct{"C"})

或者

append([]aclStruct{{"A"}}, aclStruct{"B"}, aclStruct{"C"})

一種不附加的方法是:

a := []aclStruct{aclStruct{"A"}, aclStruct{"B"}}
appendedArray := []aclStruct{aclStruct{"C"}, a...}


查看完整回答
反對(duì) 回復(fù) 2023-03-29
  • 3 回答
  • 0 關(guān)注
  • 176 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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