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

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

傳播[重復(fù)]時(shí)“無(wú)法使用[]結(jié)構(gòu)類(lèi)型的變量作為[]接口”

傳播[重復(fù)]時(shí)“無(wú)法使用[]結(jié)構(gòu)類(lèi)型的變量作為[]接口”

Go
牛魔王的故事 2023-07-17 16:34:03
原型函數(shù)func test(i ...interface{}) {    // Code here}有可能的使用type foo struct {    // Fields}foos := []foo{    // foo1, foo2 ...}test(foos...) // ERRORtest(foos[1], foos[2], ...) // OK錯(cuò)誤無(wú)法使用 foos([]foos 類(lèi)型的變量)作為要測(cè)試的參數(shù)中的 []interface{} 值描述預(yù)期用途是像內(nèi)置函數(shù)一樣使用append()。https://golang.google.cn/pkg/builtin/#appendfunc append(slice []Type, elems ...Type) []Type雖然,正如我所見(jiàn),append()不使用interface{},這很奇怪,因?yàn)樵谖宜阉鞯娜魏蔚胤?,所有人都說(shuō)interface{}當(dāng)您不知道類(lèi)型時(shí)使用。但他們沒(méi)有。不,append()使用名為 的“內(nèi)置”類(lèi)型Type,顯然文檔說(shuō)它是一個(gè)int. 雖然,我不能使用它。沒(méi)有這種類(lèi)型。如果有的話(huà)我也不知道如何使用它。https://golang.google.cn/pkg/builtin/#Typetype Type int所以,我在這里很困惑。問(wèn)題為什么展開(kāi)運(yùn)算符不能按預(yù)期工作?例如,在 Javascript 中,擴(kuò)展運(yùn)算符只是將數(shù)組擴(kuò)展為項(xiàng)目。但在 Golang 中,它似乎保留了相同的數(shù)組參數(shù)類(lèi)型,但稍后給編譯器提供了傳播它的指令。這很奇怪。我們是否能夠制作類(lèi)似的自定義機(jī)制append()?或者我是一個(gè)假人,我無(wú)論如何都使用了錯(cuò)誤的東西?
查看完整描述

3 回答

?
ABOUTYOU

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

我認(rèn)為這就是您在這里遇到的問(wèn)題。

https://github.com/golang/go/wiki/InterfaceSlice

我不是這方面的專(zhuān)家,但之前已經(jīng)遇到過(guò)這個(gè)問(wèn)題,“空接口切片”不是一個(gè)接口,因此不能被任何類(lèi)型替換,這是您遇到的問(wèn)題,它與內(nèi)存結(jié)構(gòu)有關(guān)不同的。上面的解釋比我能給出的解釋要好得多。


查看完整回答
反對(duì) 回復(fù) 2023-07-17
?
小唯快跑啊

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

您可以對(duì)鍵入的切片進(jìn)行類(lèi)型轉(zhuǎn)換以獲得所需的內(nèi)容:


generic := make([]interface{}, 0)

for _, f := range foos {

  generic = append(generic, f)

}

test(generic...)  // works


查看完整回答
反對(duì) 回復(fù) 2023-07-17
?
人到中年有點(diǎn)甜

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

將兩個(gè)非否定答案結(jié)合成我認(rèn)為最好的解決方案:


interfaceSlice := make([]interface{}, len(foos))

for i, v := range foos {

    interfaceSlice[i] = v

}

test(interfaceSlice...)

部分靈感來(lái)自:


https://github.com/golang/go/wiki/InterfaceSlice#what-can-i-do-instead


查看完整回答
反對(duì) 回復(fù) 2023-07-17
  • 3 回答
  • 0 關(guān)注
  • 157 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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