国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Go 1.21新增的 maps 包詳解

這篇具有很好參考價(jià)值的文章主要介紹了Go 1.21新增的 maps 包詳解。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

maps 包提供了幾個(gè)非常有用的用于操作 map 類型(任何類型的 map)的函數(shù),本文接下來詳細(xì)介紹下這幾個(gè)函數(shù)。

maps.Clone

定義如下:

func Clone[M ~map[K]V, K comparable, V any](m M) M

返回 m 的一個(gè)副本,因?yàn)樾碌逆I和值是使用賦值方式復(fù)制的,所以這是一個(gè)淺克隆。簡(jiǎn)單示例如下:

package main

import (
	"fmt"
	"maps"
)

func main() {
	m := map[string]string{"foo": "bar"}
	m1 := maps.Clone(m)
	fmt.Println(m1) // map[foo:bar]
}

maps.Copy

定義如下:

func Copy[M1 ~map[K]V, M2 ~map[K]V, K comparable, V any](dst M1, src M2)

復(fù)制 src 中的所有鍵值對(duì)并添加到 dst 中。當(dāng) src 中的鍵已經(jīng)在 dst 中存在時(shí),dst 中的值將被 src 中被該鍵對(duì)應(yīng)的值覆蓋。簡(jiǎn)單示例如下:

package main

import (
	"fmt"
	"maps"
)

func main() {
	m := map[string]string{"foo": "bar", "foo2": "bar2"}
	m1 := map[string]string{"foo": "bar2", "foo3": "bar3"}
	maps.Copy(m1, m)
	fmt.Println(m1) // map[foo:bar foo2:bar2 foo3:bar3]
}

maps.DeleteFunc

定義如下:

func DeleteFunc[M ~map[K]V, K comparable, V any](m M, del func(K, V) bool)

從 m 中刪除經(jīng) del 函數(shù)計(jì)算后返回 true 的所有鍵值對(duì)。簡(jiǎn)單示例如下:

package main

import (
	"fmt"
	"maps"
)

func main() {
	m := map[string]int{
		"one":   1,
		"two":   2,
		"three": 3,
		"four":  4,
	}
	maps.DeleteFunc(m, func(k string, v int) bool {
		return v%2 != 0 
	})
	fmt.Println(m)
}

刪除所有值為奇數(shù)類型的鍵值對(duì)。

maps.Equal

定義如下:

func Equal[M1, M2 ~map[K]V, K, V comparable](m1 M1, m2 M2) bool

判斷兩個(gè) map 是否包含相同的鍵值對(duì)。簡(jiǎn)單示例如下:

package main

import (
	"fmt"
	"maps"
)

func main() {
	m := map[string]string{"foo": "bar", "foo2": "bar2"}
	m1 := map[string]string{"foo": "bar2", "foo3": "bar3"}
	m2 := map[string]string{"foo": "bar", "foo2": "bar2"}
	b := maps.Equal(m, m1)
	fmt.Println(b) // false
	b = maps.Equal(m, m2)
	fmt.Println(b) // true
}

maps.EqualFunc

定義如下:

func EqualFunc[M1 ~map[K]V1, M2 ~map[K]V2, K comparable, V1, V2 any](m1 M1, m2 M2, eq func(V1, V2) bool) bool

類似于Equal函數(shù),但使用自定義的 eq 函數(shù)進(jìn)行比較。

package main

import (
	"fmt"
	"maps"
	"strings"
)

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) // true
}

將值轉(zhuǎn)換為小寫的字符串后進(jìn)行比較。文章來源地址http://www.zghlxwxcb.cn/news/detail-674386.html

到了這里,關(guān)于Go 1.21新增的 maps 包詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • slices in Go 1.21

    slices in Go 1.21

    Go 1.21中新增的 slices 包中提供了很多與切片相關(guān)的函數(shù),適用于任意類型的切片。 本文內(nèi)容來自官方文檔 函數(shù)簽名如下: BinarySearch 在已排序的切片中搜索 target 并返回找到 target 的位置,或者 target 在排序順序中出現(xiàn)的位置;它還返回一個(gè)布爾值,表示是否確實(shí)在切片中找到

    2024年02月08日
    瀏覽(34)
  • 【Golang】Golang進(jìn)階系列教程--Go 語言 map 如何順序讀取?

    Go 語言中的 map 是一種非常強(qiáng)大的數(shù)據(jù)結(jié)構(gòu),它允許我們快速地存儲(chǔ)和檢索鍵值對(duì)。 然而,當(dāng)我們遍歷 map 時(shí),會(huì)有一個(gè)有趣的現(xiàn)象,那就是輸出的鍵值對(duì)順序是不確定的。 先看一段代碼示例: 當(dāng)我們多執(zhí)行幾次這段代碼時(shí),就會(huì)發(fā)現(xiàn),輸出的順序是不同的。 首先,Go 語言

    2024年02月14日
    瀏覽(98)
  • 使用go mod tidy命令出現(xiàn)go.mod file indicates go 1.21, but maximum supported version is 1.19,如何解決

    使用go mod tidy命令出現(xiàn)go.mod file indicates go 1.21, but maximum supported version is 1.19,如何解決

    使用git拉取代碼Golang代碼到本地后,利用VS Code打開項(xiàng)目后,看到go.mod報(bào)紅,現(xiàn)象如下圖所示:` 這個(gè)問題是當(dāng)前使用的go版本與git clone拉取下來的項(xiàng)目的go.mod所用的go版本不一致導(dǎo)致的: 在項(xiàng)目中打開一個(gè)terminal,查看當(dāng)前安裝的go版本是否與go.mod的第二行的聲明一致:如下圖

    2024年02月06日
    瀏覽(31)
  • 力扣日記1.21-【回溯算法篇】77. 組合

    力扣日記1.21-【回溯算法篇】77. 組合

    日期:2023.1.21 參考:代碼隨想錄、力扣 終于結(jié)束二叉樹了!聽說回溯篇也是個(gè)大頭,不知道這一篇得持續(xù)多久了…… 題目描述 難度:中等 給定兩個(gè)整數(shù) n 和 k,返回范圍 [1, n] 中所有可能的 k 個(gè)數(shù)的組合。 你可以按 任何順序 返回答案。 示例 1: 輸入:n = 4, k = 2 輸出:

    2024年01月22日
    瀏覽(22)
  • 【詳細(xì)介紹分析golang中map的相關(guān)知識(shí)】

    Golang中的map是一種非常強(qiáng)大和靈活的數(shù)據(jù)結(jié)構(gòu),它可以用來存儲(chǔ)鍵值對(duì)。在本文中,我們將深入探討Golang中map的相關(guān)知識(shí),包括其定義、初始化、操作以及一些常見的應(yīng)用場(chǎng)景。 在Golang中,map是一種 引用類型 ,可以使用內(nèi)置的make函數(shù)來創(chuàng)建一個(gè)map。map的定義形式為: var

    2024年02月17日
    瀏覽(25)
  • Golang 中的 map 詳解

    Golang 中的 map 詳解

    1、map 的定義 ??在計(jì)算機(jī)科學(xué)里,被稱為相關(guān)數(shù)組、map、符號(hào)表或者字典,是由一組 key, value 對(duì)組成的抽象數(shù)據(jù)結(jié)構(gòu),并且同一個(gè) key 只會(huì)出現(xiàn)一次。 ??兩個(gè)關(guān)鍵點(diǎn):map 是由 key-value 對(duì)組成的;key 只會(huì)出現(xiàn)一次。 ??map 的設(shè)計(jì)也被稱為 “The dictionary problem(字典問題)

    2024年02月14日
    瀏覽(24)
  • 一、Go基礎(chǔ)知識(shí)21、GOPROXY設(shè)置鏡像、go編碼規(guī)范

    在設(shè)置 Go 語言的代理時(shí),可以使用 GOPROXY 環(huán)境變量來指定代理服務(wù)器的地址。 Go 官方提供的中國(guó)國(guó)內(nèi)鏡像: https://goproxy.cn。 以下是如何設(shè)置 Goproxy 中國(guó)國(guó)內(nèi)鏡像的步驟: 在終端或命令提示符中執(zhí)行以下命令: 如果你使用的是 Windows 平臺(tái)的命令提示符,可以使用以下命令:

    2024年01月17日
    瀏覽(21)
  • go 語言中 map 的相關(guān)知識(shí)

    map中的key可以是任何的類型,只要它的值能比較是否相等,Go的語言規(guī)范已精確定義,Key的類型可以是: 布爾值 數(shù)字 字符串 指針 通道 接口類型 結(jié)構(gòu)體 只包含上述類型的數(shù)組 但不能是: slice map function Key類型只要能支持 和!=操作符,即可以做為Key,當(dāng)兩個(gè)值 時(shí),則認(rèn)為是

    2024年02月01日
    瀏覽(22)
  • ES6基礎(chǔ)知識(shí)五:你是怎么理解ES6新增Set、Map兩種數(shù)據(jù)結(jié)構(gòu)的?

    ES6基礎(chǔ)知識(shí)五:你是怎么理解ES6新增Set、Map兩種數(shù)據(jù)結(jié)構(gòu)的?

    如果要用一句來描述,我們可以說 Set是一種叫做集合的數(shù)據(jù)結(jié)構(gòu),Map是一種叫做字典的數(shù)據(jù)結(jié)構(gòu) 什么是集合?什么又是字典? 集合 是由一堆無序的、相關(guān)聯(lián)的,且不重復(fù)的內(nèi)存結(jié)構(gòu)【數(shù)學(xué)中稱為元素】組成的組合 字典 是一些元素的集合。每個(gè)元素有一個(gè)稱作key 的域,不同

    2024年02月16日
    瀏覽(22)
  • 100天精通Golang(基礎(chǔ)入門篇)——第12天:深入解析Go語言中的集合(Map)及常用函數(shù)應(yīng)用

    100天精通Golang(基礎(chǔ)入門篇)——第12天:深入解析Go語言中的集合(Map)及常用函數(shù)應(yīng)用

    ?? 博主 libin9iOak帶您 Go to Golang Language.? ?? 個(gè)人主頁——libin9iOak的博客?? ?? 《面試題大全》 文章圖文并茂??生動(dòng)形象??簡(jiǎn)單易學(xué)!歡迎大家來踩踩~?? ?? 《IDEA開發(fā)秘籍》學(xué)會(huì)IDEA常用操作,工作效率翻倍~?? ?? 希望本文能夠給您帶來一定的幫助??文章粗淺,敬請(qǐng)批

    2024年02月12日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包