欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Go?1.21中引入的新包maps和cmp功能作用詳解

 更新時間:2023年11月20日 11:09:41   作者:技術(shù)的游戲  
這篇文章主要為大家介紹了Go?1.21中引入的新包maps和cmp功能作用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

Go 1.21的發(fā)布

隨著Go 1.21的發(fā)布,將有兩個令人興奮的包被引入到核心庫中,這兩個包專注于操作maps和提供比較功能。讓我們仔細看看這些包:

1. maps 包

maps包為處理maps提供實用工具,使克隆、復(fù)制、刪除和比較map條目變得更加簡單和高效。

函數(shù)

  • • Clone: 克隆一個map。

 m := map[string]int{"one": 1, "two": 2}
 cloned := maps.Clone(m)
 fmt.Println(cloned) // Output: map[one:1 two:2]
  • • Copy: 將鍵/值對從一個map復(fù)制到另一個map。

 dst := map[string]int{"one": 1}
 src := map[string]int{"two": 2}
 maps.Copy(dst, src)
 // dst is now {"one": 1, "two": 2}
 fmt.Printf("%#v\n", dst)
  • • DeleteFunc: 根據(jù)給定的函數(shù)從map中刪除鍵/值對。

 m := map[string]int{"one": 1, "two": 2}
 maps.DeleteFunc(m, func(k string, v int) bool { return v == 2 })
 fmt.Println(m) // Output: map[one:1]
  • • Equal 和 EqualFunc: 比較兩個map以檢查它們是否相等。

 m1 := map[string]int{"one": 1, "two": 2}
 m2 := map[string]int{"one": 1, "two": 2}
 equal := maps.Equal(m1, m2) // true
 fmt.Println(equal)

2. cmp 包

cmp 包定義了用于比較有序類型的函數(shù)和類型,包括整數(shù)、浮點數(shù)和字符串。該包提供了一種一致的方式來比較值,包括浮點類型的 NaN 值。

函數(shù)

  • • Compare: 比較兩個有序值并返回 -1、0 或 +1。

 result := cmp.Compare(5, 10) // -1
 fmt.Println(result)
 result = cmp.Compare(10, 5) // 1
 fmt.Println(result)
 result = cmp.Compare(5, 5) // 0
 fmt.Println(result)
  • • Less: 判斷一個值是否小于另一個值。

 isLess := cmp.Less(5, 10) // true
 fmt.Println(isLess)
 isLess = cmp.Less(10, 5) // false
 fmt.Println(isLess)
 isLess = cmp.Less(10, 10) // false
 fmt.Println(isLess)

類型

  • • Ordered: 一個約束,允許任何有序類型,包括支持比較運算符如<<=、>=>的類型。這個約束可以與類型參數(shù)一起使用,確保與通用函數(shù)或類型一起使用的類型滿足所需的約束。

func Min[T cmp.Ordered](a, b T) T {
 if cmp.Less(a, b) {
  return a
 }
 return b
}
func main() {
 minInt := Min(3, 5)        // minInt is 3
 minString := Min("a", "b") // minString is "a"
 fmt.Println(minInt, minString)
}

結(jié)論

在 Go 中引入 maps 和 cmp 包代表了增強該語言核心功能的重要一步。有了這些添加,開發(fā)者現(xiàn)在可以輕松地操作和比較映射和有序類型,進一步簡化他們的代碼。通過將常見操作抽象到這些核心包中,Go 繼續(xù)追求開發(fā)體驗中的效率、清晰性和穩(wěn)健性。

以上就是Go 1.21中引入的新包maps和cmp功能作用詳解的詳細內(nèi)容,更多關(guān)于Go1.21 maps cmp包的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Go語言通過http抓取網(wǎng)頁的方法

    Go語言通過http抓取網(wǎng)頁的方法

    這篇文章主要介紹了Go語言通過http抓取網(wǎng)頁的方法,實例分析了Go語言通過http操作頁面的技巧,需要的朋友可以參考下
    2015-03-03
  • golang判斷結(jié)構(gòu)體為空的問題

    golang判斷結(jié)構(gòu)體為空的問題

    這篇文章主要介紹了golang判斷結(jié)構(gòu)體為空的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Golang使用Decimal庫避免運算中精度損失詳細步驟

    Golang使用Decimal庫避免運算中精度損失詳細步驟

    decimal是為了解決Golang中浮點數(shù)計算時精度丟失問題而生的一個庫,使用decimal庫我們可以避免在go中使用浮點數(shù)出現(xiàn)精度丟失的問題,下面這篇文章主要給大家介紹了關(guān)于Golang使用Decimal庫避免運算中精度損失的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • windows下使用GoLand生成proto文件的方法步驟

    windows下使用GoLand生成proto文件的方法步驟

    本文主要介紹了windows下使用GoLand生成proto文件的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Golang編程實現(xiàn)刪除字符串中出現(xiàn)次數(shù)最少字符的方法

    Golang編程實現(xiàn)刪除字符串中出現(xiàn)次數(shù)最少字符的方法

    這篇文章主要介紹了Golang編程實現(xiàn)刪除字符串中出現(xiàn)次數(shù)最少字符的方法,涉及Go語言字符串遍歷與運算相關(guān)操作技巧,需要的朋友可以參考下
    2017-01-01
  • Go語言利用正則表達式處理多行文本

    Go語言利用正則表達式處理多行文本

    在?Go?語言中處理多行文本的正則表達式時,換行符常常會導(dǎo)致意外的匹配結(jié)果,本文為大家整理了一些解決方法,有需要的小伙伴可以參考一下
    2024-11-11
  • Golang 獲取文件md5校驗的方法以及效率對比

    Golang 獲取文件md5校驗的方法以及效率對比

    這篇文章主要介紹了Golang 獲取文件md5校驗的方法以及效率對比,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • Go語言中的指針運算實例分析

    Go語言中的指針運算實例分析

    這篇文章主要介紹了Go語言中的指針運算技巧,實例分析了Go語言指針運算的實現(xiàn)方法,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • Golang 變量申明的三種方式

    Golang 變量申明的三種方式

    這篇文章主要介紹了Golang 變量申明的三種方式,幫助大家更好的理解和學(xué)習(xí)golang,感興趣的朋友可以了解下
    2020-08-08
  • Golang實現(xiàn)根據(jù)某個特定字段對結(jié)構(gòu)體的順序進行排序

    Golang實現(xiàn)根據(jù)某個特定字段對結(jié)構(gòu)體的順序進行排序

    這篇文章主要為大家詳細介紹了Golang如何實現(xiàn)根據(jù)某個特定字段對結(jié)構(gòu)體的順序進行排序,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03

最新評論