最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go1.21新增cmp包的用法詳解

 更新時(shí)間:2023年08月23日 08:33:33   作者:路多辛  
Go?1.21新增的?cmp?包提供了與比較有序值相關(guān)的類型和函數(shù),前幾篇文章講解的?slices?包中的函數(shù)有大量使用到?cmp?包中的函數(shù)和類型,下面我們就來看看cmp包的相關(guān)函數(shù)用法吧

cmp.Compare 函數(shù)

定義如下:

func Compare[T Ordered](x, y T) int

返回值有以下幾種情況:

  • 如果 x 小于 y,返回-1
  • 如果 x 等于 y,返回 0
  • 如果 x 大于 y,返回 1

對于浮點(diǎn)類型,NaN 被認(rèn)為小于任何非 NaN 的值, NaN 被認(rèn)為等于 NaN, -0.0 被認(rèn)為等于 0.0。簡單示例如下:

package main
import (
    "cmp"
    "fmt"
    "math"
)
func main() {
    fmt.Println(cmp.Compare(1, 2))                   // -1
    fmt.Println(cmp.Compare(1, 1))                   // 0
    fmt.Println(cmp.Compare(2, 1))                   // 1
    fmt.Println(cmp.Compare(1, math.NaN()))          // 1
    fmt.Println(cmp.Compare(-1, math.NaN()))         // 1
    fmt.Println(cmp.Compare(math.NaN(), math.NaN())) // 0
    fmt.Println(cmp.Compare(-0.0, 0.0))              // 0
}

cmp.Less 函數(shù)

定義如下:

func Less[T Ordered](x, y T) bool

判斷 x 是否小于 y。對于浮點(diǎn)類型,NaN 被認(rèn)為小于任何非 NaN 的值,并且 -0.0 不小于(等于) 0.0。

package main
import (
    "cmp"
    "fmt"
    "math"
)
func main() {
    fmt.Println(cmp.Less(1, 2))                   //true
    fmt.Println(cmp.Less(1, 1))                   // false
    fmt.Println(cmp.Less(2, 1))                   // false
    fmt.Println(cmp.Less(1, math.NaN()))          // false
    fmt.Println(cmp.Less(-1, math.NaN()))         // false
    fmt.Println(cmp.Less(math.NaN(), math.NaN())) // false
    fmt.Println(cmp.Less(math.NaN(), -1.0))       // true
    fmt.Println(cmp.Less(-0.0, 0.0))              // false
}

cmp.Ordered 接口

定義如下:

type Ordered interface {
    ~int | ~int8 | ~int16 | ~int32 | ~int64 |
        ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr |
        ~float32 | ~float64 |
        ~string
}

Ordered 是對有序類型的約束,包含任何支持操作符 <、<=、>= 和 > 的類型。如果 Go 未來的版本添加了新的有序類型,則將修改此接口以將新的有序類型包含進(jìn)去。

需要注意的是,浮點(diǎn)類型可能包含NaN(“非數(shù)字”)類型的值。在將 NaN 值與任何其它值(無論是否為 NaN)進(jìn)行比較時(shí),例如 == 或 < 之類的操作符結(jié)果都是 false。

到此這篇關(guān)于Go1.21新增cmp包的用法詳解的文章就介紹到這了,更多相關(guān)Go1.21 cmp包內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • GO語言導(dǎo)入自己寫的包(同級目錄和不同目錄)

    GO語言導(dǎo)入自己寫的包(同級目錄和不同目錄)

    本文介紹了如何在Go語言項(xiàng)目中導(dǎo)入同級目錄和不同目錄的包,詳細(xì)解釋了創(chuàng)建文件結(jié)構(gòu)、編寫主函數(shù)、同級目錄和不同目錄方法的調(diào)用,適合初學(xué)者參考,幫助理解Go項(xiàng)目的基本構(gòu)建和包管理
    2024-09-09
  • Golang多個(gè)域名的跨域資源共享的實(shí)現(xiàn)

    Golang多個(gè)域名的跨域資源共享的實(shí)現(xiàn)

    本文主要介紹了Golang多個(gè)域名的跨域資源共享的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • Golang通過包長協(xié)議處理TCP粘包的問題解決

    Golang通過包長協(xié)議處理TCP粘包的問題解決

    本文主要介紹了Golang通過包長協(xié)議處理TCP粘包的問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • golang中g(shù)in框架接入jwt使用token驗(yàn)證身份

    golang中g(shù)in框架接入jwt使用token驗(yàn)證身份

    本文主要介紹了golang中g(shù)in框架接入jwt使用token驗(yàn)證身份,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 一文教你如何快速學(xué)會Go的struct數(shù)據(jù)類型

    一文教你如何快速學(xué)會Go的struct數(shù)據(jù)類型

    結(jié)構(gòu)是表示字段集合的用戶定義類型。它可以用于將數(shù)據(jù)分組為單個(gè)單元而不是將每個(gè)數(shù)據(jù)作為單獨(dú)的值的地方。本文就來和大家聊聊Go中struct數(shù)據(jù)類型的使用,需要的可以參考一下
    2023-03-03
  • go?goth封裝第三方認(rèn)證庫示例詳解

    go?goth封裝第三方認(rèn)證庫示例詳解

    這篇文章主要為大家介紹了go?goth封裝第三方認(rèn)證庫示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 初探Golang數(shù)據(jù)結(jié)構(gòu)之Slice的使用

    初探Golang數(shù)據(jù)結(jié)構(gòu)之Slice的使用

    在學(xué)習(xí)Go語言時(shí),一直對數(shù)組和切片的使用場景好奇,不明白為什么推薦使用切片來代替數(shù)組,所以本文就來和大家梳理一下Slice切片的相關(guān)知識吧
    2023-09-09
  • Go語言進(jìn)行多時(shí)區(qū)時(shí)間轉(zhuǎn)換的示例代碼

    Go語言進(jìn)行多時(shí)區(qū)時(shí)間轉(zhuǎn)換的示例代碼

    本文介紹了使用Go語言進(jìn)行多時(shí)區(qū)時(shí)間轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • go內(nèi)存緩存如何new一個(gè)bigcache對象示例詳解

    go內(nèi)存緩存如何new一個(gè)bigcache對象示例詳解

    這篇文章主要為大家介紹了go內(nèi)存緩存如何new一個(gè)bigcache對象示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Go語言包管理工具Godep的用法

    Go語言包管理工具Godep的用法

    這篇文章介紹了Go語言包管理工具Godep的用法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07

最新評論

敦煌市| 定南县| 永新县| 镇巴县| 桂东县| 永春县| 江城| 广元市| 安陆市| 抚宁县| 平武县| 中阳县| 娄底市| 临夏县| 台山市| 手游| 姜堰市| 儋州市| 无极县| 南木林县| 周宁县| 惠水县| 定远县| 桑植县| 连山| 廉江市| 平乐县| 越西县| 定兴县| 宁武县| 双鸭山市| 台州市| 响水县| 铁岭县| 宁晋县| 博野县| 财经| 汉中市| 保山市| 江门市| 乾安县|