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

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

有沒有辦法在 golang 中映射對(duì)象數(shù)組?

有沒有辦法在 golang 中映射對(duì)象數(shù)組?

Go
慕桂英3389331 2022-11-23 20:13:44
來自 Nodejs,我可以做類似的事情:// given an array `list` of objects with a field `fruit`:fruits = list.map(el => el.fruit) # which will return an array of fruit strings 有什么辦法可以在 golang 的優(yōu)雅單襯里做到這一點(diǎn)?我知道我可以用一個(gè)范圍循環(huán)來做到這一點(diǎn),但我正在尋找一個(gè)線性解決方案的可能性
查看完整描述

1 回答

?
慕運(yùn)維8079593

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

在 Go 中,數(shù)組是不靈活的(因?yàn)樗鼈兊拈L度是用它們的類型編碼的)并且傳遞給函數(shù)的成本很高(因?yàn)楹瘮?shù)對(duì)其數(shù)組參數(shù)的副本進(jìn)行操作)。我假設(shè)您想對(duì)切片而不是數(shù)組進(jìn)行操作。


因?yàn)榉椒ú荒芙邮茴~外的類型參數(shù),所以你不能簡(jiǎn)單地在 Go 中聲明一個(gè)泛型Map 方法。但是,您可以定義Map為通用頂級(jí)函數(shù):


func Map[T, U any](ts []T, f func(T) U) []U {

    us := make([]U, len(ts))

    for i := range ts {

        us[i] = f(ts[i])

    }

    return us

}

然后你可以寫下面的代碼,


names := []string{"Alice", "Bob", "Carol"}

fmt.Println(Map(names, utf8.RuneCountInString))

打印到標(biāo)準(zhǔn)輸出(在這個(gè) Playground[5 3 5]中嘗試)。

Go 1.18 看到添加了一個(gè)golang.org/x/exp/slicespackage,它提供了許多對(duì)切片的方便操作,但是其中Map明顯缺少一個(gè)功能。該功能的遺漏是在專門針對(duì)該提案的GitHub 問題中進(jìn)行了長時(shí)間討論的結(jié)果;golang.org/x/exp/slices關(guān)切包括以下方面:

Russ Cox最終選擇Map退出該提案,因?yàn)樗?/p>

作為其他地方更全面的流 API 的一部分可能更好。


查看完整回答
反對(duì) 回復(fù) 2022-11-23
  • 1 回答
  • 0 關(guān)注
  • 117 瀏覽

添加回答

舉報(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)