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

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

https://stackoverflow.com/questions/68267991/

https://stackoverflow.com/questions/68267991/

Go
慕田峪7331174 2022-09-12 16:59:03
我有一個問題調(diào)用函數(shù)sort.SearchInts(arrInt, 10)因為數(shù)組 (arrInt) 具有 int8 類型,我需要將數(shù)組轉(zhuǎn)換為 int 類型。我想我可以走很長的路,在for循環(huán)中搜索一個元素,但它聽起來很丑陋,我想有更好的方法來做到這一點。
查看完整描述

3 回答

?
FFIVE

TA貢獻1797條經(jīng)驗 獲得超6個贊

sort.SearchInts只是一種方便的包裝器。搜索 s 的切片。int

它的實現(xiàn)方式如下

func SearchInts(a []int, x int) int {    return Search(len(a), func(i int) bool { return a[i] >= x })
}

因此,您可以創(chuàng)建一個自定義的“”函數(shù),該函數(shù)對參數(shù)執(zhí)行相同的操作:SearchInt8sint8

func SearchInt8s(a []int8, x int8) int {    return sort.Search(len(a), func(i int) bool { return a[i] >= x })
}

或者(正如另一個答案已經(jīng)說過的那樣),只需使用排序。直接搜索

sort.Search(len(arrInt), func(i int) bool { return arrInt[i] >= 10 })

請注意,在調(diào)用此命令之前,必須對切片進行排序,因為此系列函數(shù)在已排序的切片中執(zhí)行二進制搜索。


查看完整回答
反對 回復(fù) 2022-09-12
?
陪伴而非守候

TA貢獻1757條經(jīng)驗 獲得超8個贊

數(shù)組是內(nèi)存中相同大小的項的連續(xù)序列:

Array of int8: [1 byte][1 byte][1 byte][1 byte][1 byte]...

如果我們需要整數(shù)數(shù)組(在amd64中典型為8個字節(jié)),我們有:

Array of int: [8 bytes][8 bytes][8 bytes][8 bytes][8 bytes]...

沒有辦法簡單地從一種類型轉(zhuǎn)換或轉(zhuǎn)換為另一種類型,獲取int數(shù)組的唯一方法是創(chuàng)建一個新的int數(shù)組并將所有值從int8轉(zhuǎn)換為int。

另一方面,如果您只需要在數(shù)組中搜索,則執(zhí)行所有轉(zhuǎn)換都是過度的,則最好的方法是創(chuàng)建一個函數(shù) 。SearchInt8

這是泛型有用的地方,相同的算法將適用于具有相同操作的類型,但Golang缺少泛型。為了獲得這個結(jié)果,golang附帶了一個函數(shù)(https://golang.org/pkg/sort/#Search),該函數(shù)接受該函數(shù)作為第二個參數(shù)來實現(xiàn)您的類型的比較。sort.Search

提醒:要使用搜索函數(shù),數(shù)組應(yīng)該已經(jīng)排序。


查看完整回答
反對 回復(fù) 2022-09-12
?
呼如林

TA貢獻1798條經(jīng)驗 獲得超3個贊

sort.Search(len(arrInt), func(i int) bool { return arrInt[i] >= 10 })



查看完整回答
反對 回復(fù) 2022-09-12
  • 3 回答
  • 0 關(guān)注
  • 95 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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