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

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

獲取和設(shè)置任意切片的長(zhǎng)度

獲取和設(shè)置任意切片的長(zhǎng)度

Go
達(dá)令說(shuō) 2022-05-23 15:49:42
要獲得任何切片的長(zhǎng)度,我使用reflect.ValueOf(slice).Len(). 要設(shè)置任何切片的長(zhǎng)度,我使用reflect.ValueOf(&slice).Elem().SetLen(n).我的結(jié)構(gòu)中有一個(gè)類(lèi)型的字段reflect.Value,并且該值設(shè)置為,reflect.ValueOf(&slice)以便我可以更改切片。但現(xiàn)在我無(wú)法獲得底層切片的長(zhǎng)度。call of reflect.Value.Len on ptr Value它會(huì)因?yàn)槿绻襆en()直接打電話而感到恐慌,如果我打電話call of reflect.Value.Len on interface Value給Elem().Len().以下是我試圖實(shí)現(xiàn)的功能:func pop(slice interface{}) interface{} {    v := reflect.ValueOf(slice)    length := v.Len()    last := v.Index(length - 1)    v.SetLen(length - 1)    return last}我怎樣才能同時(shí)使用refect.Value切片指針?
查看完整描述

1 回答

?
飲歌長(zhǎng)嘯

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

編寫(xiě)函數(shù)以使用指向切片參數(shù)的指針。


// pop removes and returns the last element from

// the slice pointed to by slicep.

func pop(slicep interface{}) interface{} {

    v := reflect.ValueOf(slicep).Elem()

    length := v.Len()

    last := v.Index(length - 1)

    v.SetLen(length - 1)

    return last

}

像這樣稱(chēng)呼它:


slice := []int{1, 2, 3}

last := pop(&slice)

fmt.Println(last)  // prints 3

fmt.Println(slice) // prints [1 2]


查看完整回答
反對(duì) 回復(fù) 2022-05-23
  • 1 回答
  • 0 關(guān)注
  • 139 瀏覽
慕課專(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)