日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁(yè) > 科技  > 軟件

Go 1.21.0 新增標(biāo)準(zhǔn)庫(kù) Slices 和 Mps 詳解

來(lái)源: 責(zé)編: 時(shí)間:2023-09-28 10:08:05 286觀看
導(dǎo)讀01 、介紹在 Go 語(yǔ)言項(xiàng)目開(kāi)發(fā)中,我們經(jīng)常會(huì)使用 slice 和 map 數(shù)據(jù)類型,因?yàn)?Go 1.18.0 開(kāi)始支持泛型,所以 slice 的元素可能是任意類型,map 的 key 和 value 也可能是任意類型。Go 1.21.0 新增操作 slice 和 map 數(shù)據(jù)類

01 、介紹

在 Go 語(yǔ)言項(xiàng)目開(kāi)發(fā)中,我們經(jīng)常會(huì)使用 slice 和 map 數(shù)據(jù)類型,因?yàn)?Go 1.18.0 開(kāi)始支持泛型,所以 slice 的元素可能是任意類型,map 的 key 和 value 也可能是任意類型。zRQ28資訊網(wǎng)——每日最新資訊28at.com

Go 1.21.0 新增操作 slice 和 map 數(shù)據(jù)類型的標(biāo)準(zhǔn)庫(kù) slices 和 maps,提供了操作 slice 和 map 的泛型函數(shù)。zRQ28資訊網(wǎng)——每日最新資訊28at.com

本文我們介紹標(biāo)準(zhǔn)庫(kù) slices 和 maps 的使用方式。zRQ28資訊網(wǎng)——每日最新資訊28at.com

02 、標(biāo)準(zhǔn)庫(kù) slices

標(biāo)準(zhǔn)庫(kù) slices 提供了許多操作任意類型元素 slice 的函數(shù),可以方便我們實(shí)現(xiàn)業(yè)務(wù)需求。zRQ28資訊網(wǎng)——每日最新資訊28at.com

建議感興趣的讀者朋友們閱讀手冊(cè)了解關(guān)于標(biāo)準(zhǔn)庫(kù) slices[1] 的所有函數(shù)的功能。zRQ28資訊網(wǎng)——每日最新資訊28at.com

限于篇幅,我們介紹關(guān)于查找的函數(shù)的使用方式。zRQ28資訊網(wǎng)——每日最新資訊28at.com

查找功能的函數(shù) BinarySearch 和 BinarySearchFunc。zRQ28資訊網(wǎng)——每日最新資訊28at.com

函數(shù) BinarySearch 示例代碼:zRQ28資訊網(wǎng)——每日最新資訊28at.com

func main() { names := []string{"Alice", "Bob", "Vera"} n, found := slices.BinarySearch(names, "Vera") fmt.Println("Vera:", n, found) n, found = slices.BinarySearch(names, "Bill") fmt.Println("Bill:", n, found)}

輸出結(jié)果:zRQ28資訊網(wǎng)——每日最新資訊28at.com

Vera: 2 trueBill: 1 false

閱讀上面這段代碼,我們定義一個(gè)字符串元素類型的切片 names,使用標(biāo)準(zhǔn)庫(kù) slices 提供的二分查找函數(shù) BinarySearch 查找 names 切片中的元素 Vera。zRQ28資訊網(wǎng)——每日最新資訊28at.com

該函數(shù)返回被查找元素在切片中的索引位置或被查找元素在切片中應(yīng)該出現(xiàn)的位置,和被查找元素是否真實(shí)存在于切片中的一個(gè)布爾值。zRQ28資訊網(wǎng)——每日最新資訊28at.com

什么是被查找元素在切片中應(yīng)該出現(xiàn)的位置?示例代碼中,查找 Bill,切片中沒(méi)有該元素,按照切片中遞增排序,Bill 應(yīng)該在 Alice 后面,即索引為 1。zRQ28資訊網(wǎng)——每日最新資訊28at.com

需要注意的是,使用函數(shù) BinarySearch 查找元素的切片,切片中的元素必須是按照遞增順序排序。zRQ28資訊網(wǎng)——每日最新資訊28at.com

函數(shù) BinarySearchFunc 示例代碼:zRQ28資訊網(wǎng)——每日最新資訊28at.com

func main() { type Person struct {  Name string  Age  int } people := []Person{  {"Alice", 55},  {"Bob", 24},  {"Gopher", 13}, } n, found := slices.BinarySearchFunc(people, Person{"Bob", 0}, func(a, b Person) int {  return cmp.Compare(a.Name, b.Name) }) fmt.Println("Bob:", n, found)}

輸出結(jié)果:zRQ28資訊網(wǎng)——每日最新資訊28at.com

Bob: 1 true

閱讀上面這段代碼,函數(shù) BinarySearchFunc 與 函數(shù) BinarySearch 的功能類似,區(qū)別是可以使用自定義比較函數(shù)。zRQ28資訊網(wǎng)——每日最新資訊28at.com

03 、標(biāo)準(zhǔn)庫(kù) maps

標(biāo)準(zhǔn)庫(kù) maps 提供了許多操作任意類型 key 和 value 的 map 的函數(shù),可以方便我們實(shí)現(xiàn)業(yè)務(wù)需求。zRQ28資訊網(wǎng)——每日最新資訊28at.com

建議感興趣的讀者朋友們閱讀手冊(cè)了解關(guān)于標(biāo)準(zhǔn)庫(kù) maps[2] 的所有函數(shù)的功能。zRQ28資訊網(wǎng)——每日最新資訊28at.com

限于篇幅,我們介紹關(guān)于比較兩個(gè) map 中的 key 和 value 是否相同的函數(shù)的使用方式。zRQ28資訊網(wǎng)——每日最新資訊28at.com

函數(shù) Equal 示例代碼:zRQ28資訊網(wǎng)——每日最新資訊28at.com

func main() { m1 := map[string]int{"lucy": 17, "lily": 18} m2 := map[string]int{"lucy": 17, "lily": 18} m3 := map[string]int{"lucy": 18, "lily": 17} fmt.Println(maps.Equal(m1, m2)) fmt.Println(maps.Equal(m1, m3))}

輸出結(jié)果:zRQ28資訊網(wǎng)——每日最新資訊28at.com

truefalse

閱讀上面這段代碼,我們定義三個(gè) map 類型的變量,其中 m1 和 m2 的 key 和 value 完全相同,而 m3 的 value 與 m1 和 m2 的 value 不同。zRQ28資訊網(wǎng)——每日最新資訊28at.com

使用函數(shù) Equal 比較,分別返回 true 和 false。zRQ28資訊網(wǎng)——每日最新資訊28at.com

需要注意的是 map 的 key 和 value 必須都是可比較的類型。zRQ28資訊網(wǎng)——每日最新資訊28at.com

函數(shù) EqualFunc 和函數(shù) Equal 的功能類似,區(qū)別是使用 eq 比較 value。key 仍然使用比較運(yùn)算符 == 進(jìn)行比較。zRQ28資訊網(wǎng)——每日最新資訊28at.com

函數(shù) EqualFunc 示例代碼:zRQ28資訊網(wǎng)——每日最新資訊28at.com

func main() { m1 := map[int]string{  1:    "one",  10:   "Ten",  1000: "THOUSAND", } m2 := map[int][]byte{  1:    []byte("One"),  10:   []byte("Ten"),  1000: []byte("Thousand"), } eq := maps.EqualFunc(m1, m2, func(v1 string, v2 []byte) bool {  return strings.ToLower(v1) == strings.ToLower(string(v2)) }) fmt.Println(eq)}

輸出結(jié)果:zRQ28資訊網(wǎng)——每日最新資訊28at.com

true

04、總結(jié)

本文我們簡(jiǎn)單介紹 Go 1.21.0 新增標(biāo)準(zhǔn)庫(kù) slices 和 maps,標(biāo)準(zhǔn)庫(kù)提供了一些操作 slice 和 map 的函數(shù),限于篇幅,分別介紹 slices 的查找功能的函數(shù),和 maps 的比較相同功能的函數(shù)。zRQ28資訊網(wǎng)——每日最新資訊28at.com

建議讀者朋友們,閱讀文檔,了解標(biāo)準(zhǔn)庫(kù)提供的所有函數(shù)的功能和使用方式。zRQ28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-11850-0.htmlGo 1.21.0 新增標(biāo)準(zhǔn)庫(kù) Slices 和 Mps 詳解

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 作用域 CSS 回來(lái)了,你知道嗎?

下一篇: 使用查詢分離后從20s優(yōu)化到500ms

標(biāo)簽:
  • 熱門焦點(diǎn)
  • MIX Fold3包裝盒泄露 新機(jī)本月登場(chǎng)

    小米的全新折疊屏旗艦MIX Fold3將于本月發(fā)布,近日該機(jī)的真機(jī)包裝盒在網(wǎng)上泄露。從圖上來(lái)看,新的MIX Fold3包裝盒在外觀設(shè)計(jì)方面延續(xù)了之前的方案,變化不大,這也是目前小米旗艦
  • 三言兩語(yǔ)說(shuō)透設(shè)計(jì)模式的藝術(shù)-簡(jiǎn)單工廠模式

    一、寫(xiě)在前面工廠模式是最常見(jiàn)的一種創(chuàng)建型設(shè)計(jì)模式,通常說(shuō)的工廠模式指的是工廠方法模式,是使用頻率最高的工廠模式。簡(jiǎn)單工廠模式又稱為靜態(tài)工廠方法模式,不屬于GoF 23種設(shè)計(jì)
  • 如何通過(guò)Python線程池實(shí)現(xiàn)異步編程?

    線程池的概念和基本原理線程池是一種并發(fā)處理機(jī)制,它可以在程序啟動(dòng)時(shí)創(chuàng)建一組線程,并將它們置于等待任務(wù)的狀態(tài)。當(dāng)任務(wù)到達(dá)時(shí),線程池中的某個(gè)線程會(huì)被喚醒并執(zhí)行任務(wù),執(zhí)行完任
  • 如何使用JavaScript創(chuàng)建一只圖像放大鏡?

    譯者 | 布加迪審校 | 重樓如果您曾經(jīng)瀏覽過(guò)購(gòu)物網(wǎng)站,可能遇到過(guò)圖像放大功能。它可以讓您放大圖像的特定區(qū)域,以便瀏覽。結(jié)合這個(gè)小小的重要功能可以大大改善您網(wǎng)站的用戶體驗(yàn)
  • Python異步IO編程的進(jìn)程/線程通信實(shí)現(xiàn)

    這篇文章再講3種方式,同時(shí)講4中進(jìn)程間通信的方式一、 Python 中線程間通信的實(shí)現(xiàn)方式共享變量共享變量是多個(gè)線程可以共同訪問(wèn)的變量。在Python中,可以使用threading模塊中的L
  • 2天漲粉255萬(wàn),又一賽道在抖音爆火

    來(lái)源:運(yùn)營(yíng)研究社作者 | 張知白編輯 | 楊佩汶設(shè)計(jì) | 晏談夢(mèng)潔這個(gè)暑期,旅游賽道徹底火了:有的「地方」火了——貴州村超旅游收入 1 個(gè)月超過(guò) 12 億;有的「博主」火了&m
  • 消息稱小米汽車開(kāi)始篩選交付中心:需至少120個(gè)車位

    IT之家 7 月 7 日消息,日前,有微博簡(jiǎn)介為“汽車行業(yè)從業(yè)者、長(zhǎng)三角一體化擁護(hù)者”的微博用戶 @長(zhǎng)三角行健者 發(fā)文表示,據(jù)經(jīng)銷商集團(tuán)反饋,小米汽車目前
  • 華為發(fā)布HarmonyOS 4:更好玩、更流暢、更安全

    在8月4日的華為開(kāi)發(fā)者大會(huì)2023(HDC.Together)大會(huì)上,HarmonyOS 4正式發(fā)布。自2019年發(fā)布以來(lái),HarmonyOS一直以用戶為中心,經(jīng)歷四年多的發(fā)展HarmonyOS已
  • Counterpoint :OPPO雙旗艦戰(zhàn)略全面落地 高端產(chǎn)品銷量增長(zhǎng)22%

    2023年6月30日,全球行業(yè)分析機(jī)構(gòu)Counterpoint Research發(fā)布的《中國(guó)智能手機(jī)高端市場(chǎng)白皮書(shū)》顯示,中國(guó)智能手機(jī)品牌正在尋求高質(zhì)量發(fā)展,中國(guó)高端智能
Top 主站蜘蛛池模板: 吴旗县| 孟连| 景宁| 阿克| 康保县| 苍溪县| 武川县| 连州市| 越西县| 堆龙德庆县| 闽侯县| 于田县| 蕉岭县| 抚松县| 阿坝县| 云和县| 遂溪县| 龙陵县| 安乡县| 台北市| 邢台县| 宁国市| 麻城市| 鄂州市| 泾阳县| 嘉义县| 隆化县| 中阳县| 彰武县| 包头市| 札达县| 咸阳市| 金山区| 北票市| 阳江市| 伽师县| 仁化县| 涿州市| 绥阳县| 张北县| 将乐县|