前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Go 1.21 新增内置函数:min、max、clear

Go 1.21 新增内置函数:min、max、clear

作者头像
孟斯特
发布于 2023-10-19 09:09:02
发布于 2023-10-19 09:09:02
31900
代码可运行
举报
文章被收录于专栏:code人生code人生
运行总次数:0
代码可运行

max 函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// The max built-in function returns the largest value of a fixed number of
// arguments of [cmp.Ordered] types. There must be at least one argument.
// If T is a floating-point type and any of the arguments are NaNs,
// max will return NaN.
func max[T cmp.Ordered](x T, y ...T) T

内置函数 max 返回固定数量的 [cmp.Ordered] 类型参数中的最大值。该接口要求至少提供有一个参数。如果 T 是浮点类型,或有任意一个参数是 NaN,那max 将返回 NaN

使用示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package main

import "fmt"

func main() {
    a, b, c := 2, 7, 3
    maxV := max(a, b, c)
    fmt.Println(maxV) // 7

    d, e, f := 2.0, 4.3, 5.2
    maxF := max(d, e, f)
    fmt.Println(maxF) // 5.2

    g, h, i := "aaa", "abc", "abd"
    maxS := max(g, h, i)
    fmt.Println(maxS) // abd
}

min 函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// The min built-in function returns the smallest value of a fixed number of
// arguments of [cmp.Ordered] types. There must be at least one argument.
// If T is a floating-point type and any of the arguments are NaNs,
// min will return NaN.
func min[T cmp.Ordered](x T, y ...T) T

内置函数 min 返回固定数量的 [cmp.Ordered] 类型参数中的最小值。该接口要求至少提供有一个参数。如果 T 是浮点类型,或有任意一个参数是 NaN,那min 将返回 NaN

使用示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package main

import "fmt"

func main() {
    a, b, c := 2, 7, 3
    maxV := min(a, b, c)
    fmt.Println(maxV) // 2

    d, e, f := 2.1, 4.3, 5.2
    maxF := min(d, e, f)
    fmt.Println(maxF) // 2.1

    g, h, i := "aaa", "abc", "abd"
    maxS := min(g, h, i)
    fmt.Println(maxS) // aaa
}

clear 函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// The clear built-in function clears maps and slices.
// For maps, clear deletes all entries, resulting in an empty map.
// For slices, clear sets all elements up to the length of the slice
// to the zero value of the respective element type. If the argument
// type is a type parameter, the type parameter's type set must
// contain only map or slice types, and clear performs the operation
// implied by the type argument.
func clear[T ~[]Type | ~map[Type]Type1](t T)

内置函数 clear 用于清空映射和切片:

•对于 mapsclear 删除所有元素,返回一个空map。•对于 slicesclear 将切片长度内的所有元素设置为各自元素类型的零值。•如果参数类型是类型参数,类型参数的类型集必须只包含mapslice类型。

使用示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package main

import "fmt"

func main() {
    a := []int{1, 3, 4, 6}
    clear(a)
    fmt.Printf("len(a): %d \t elem: %v\n", len(a), a) // len(a): 4      elem: [0 0 0 0]

    b := []string{"aaa", "bbb", "ccc"}
    clear(b)
    fmt.Printf("len(b): %d \t elem: %v\n", len(b), b) // len(b): 3      elem: [  ]

    c := map[string]interface{}{"name": "孟斯特", "age": 30}
    clear(c)
    fmt.Printf("len(c): %d \t elem: %v\n", len(c), c) // len(c): 0      elem: map[]
}

声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)[1]进行许可,使用时请注明出处。 Author: mengbin[2] blog: mengbin[3] Github: mengbin92[4] cnblogs: 恋水无意[5]


References

[1] 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0): https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh [2] mengbin: mengbin1992@outlook.com [3] mengbin: https://mengbin.top [4] mengbin92: https://mengbin92.github.io/ [5] 恋水无意: https://www.cnblogs.com/lianshuiwuyi/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-09-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 孟斯特 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Go 1.21.0 新增 3 个内置函数详解
Go 1.21.0 新增 3 个内置函数,min 和 max 函数,返回 N 个入参中最小/最大的参数,参数类型为 Ordered(有序类型,即支持比较运算符的类型)。
frank.
2023/09/08
5630
Go 1.21.0 新增 3 个内置函数详解
Go 1.21 新内置函数:min、max 和 clear | 技术创作特训营第一期
Go 1.21.0 版本已经正式发布,它带来了许多新特性和改进。其中引入了的三个新内置函数:max、min 和 clear,接下来的内容将详细介绍这些函数的用途和特点。
陈明勇
2023/08/13
1.8K0
Go 1.21 新内置函数:min、max 和 clear | 技术创作特训营第一期
每日一库:cmp
Ordered 是一个约束,它允许任何有序类型:任何支持 <、<=、>=、> 运算符的类型。如果 Go 的未来版本添加了新的有序类型,这个约束将被修改以包含它们。
孟斯特
2023/10/19
3240
每日一库:cmp
《Go小技巧&易错点100例》第二十九篇
随着 Go 语言的不断迭代,新版本带来了许多实用的标准库函数,使得代码更加简洁、可读性更强。本篇文章主要介绍 Go 1.21+ 版本中的一些新特性,涵盖 可变类型比较、slice 最大值与最小值、map 转换为 slice 以及 map 合并 等常见场景,展示如何利用新特性优化代
闫同学
2025/02/12
800
《Go小技巧&易错点100例》第二十九篇
Python 学习入门(33)—— 内置函数
len(X)返回X的长度。The argument may be a sequence (string, tuple or list) or a mapping (dictionary).
阳光岛主
2019/02/18
3830
搞懂Go泛型,看这一篇就够了
在Go语言1.17版本及后续的升级迭代中,泛型新特性无疑是非常重大的一次更新,这个特性的引入无疑为开发者们带来了更多的灵活性和代码复用性。虽然大部分功能不使用泛型也能正常实现,但是泛型带来的灵活性和效率值得我们进行学习和掌握,这篇文章就和大家一下讨论下Go语言的泛型。
闫同学
2025/01/22
2200
搞懂Go泛型,看这一篇就够了
Go 1.22 标准库 slices 新增函数和一些旧函数增加新特性
Go 1.21 标准库中新增的 slices 提供了很多方便处理 slice 的函数。
frank.
2024/04/02
3330
Go 1.22 标准库 slices 新增函数和一些旧函数增加新特性
slices in Go 1.21
Go 1.21中新增的 slices包中提供了很多与切片相关的函数,适用于任意类型的切片。
孟斯特
2023/10/19
2110
slices in Go 1.21
Go 每日一库之 go-cmp
我们时常有比较两个值是否相等的需求,最直接的方式就是使用==操作符,其实==的细节远比你想象的多,我在**深入理解 Go 之==**中有详细介绍,有兴趣去看看。但是直接用==,一个最明显的弊端就是对于指针,只有两个指针指向同一个对象时,它们才相等,不能进行递归比较。
用户7731323
2020/09/08
2K0
玩转 Go Slices 切片泛型库
在 Go 1.21.0 版本中,引入了 切片泛型库,它提供了很多有用的函数,特别是在搜索、查找和排序等方面,为我们开发者提供了诸多便利之处。而本文将会对 slices 库提供的函数进行介绍,准备好了吗,准备一杯你喜欢的咖啡或茶,随着本文一探究竟吧。
陈明勇
2023/11/03
1.5K0
玩转 Go Slices 切片泛型库
理解Golang的泛型
为降低interface{}带来的糟糕阅读体验,新增了any关键字,它实际上是一种语法糖,定义如下:
chandlerpan
2022/07/12
1.4K0
深入浅出Go泛型之泛型使用三步曲
大家好,我是渔夫子,又跟大家见面了。今天跟大家聊聊Go1.18中新增的泛型功能。。
Go学堂
2023/01/31
7330
python学习笔记11-python内置函数
Help on built-in function abs in module __builtin__:
py3study
2020/01/09
5590
【Golang语言社区】Golang语言面试题
最近在很多地方看到了golang的面试题,看到了很多人对Golang的面试题心存恐惧,也是为了复习基础,我把解题的过程总结下来。
李海彬
2018/03/07
3.9K2
【Golang语言社区】Golang语言面试题
Go Quick Start 极简教程
IDE :使用 GoLand is a cross-platform IDE built specially for Go developers。 https://www.jetbrains.com/go/
一个会写诗的程序员
2021/05/06
7610
《Go语言程序设计》读书笔记(十)反射
Go语言提供了一种机制在运行时更新变量和检查它们的值、调用它们的方法和它们支持的操作,但是在编译时并不知道这些变量的具体类型。这种机制被称为反射。反射也可以让我们将类型本身作为第一类的值类型处理。
KevinYan
2020/02/17
4680
元老与新秀:Go sort.Search()和sort.Find()
sort.Search() 提交于遥远的2010年11月11日,提交者是Go三位创始人之一的Robert Griesemer[1], 随Go第一个正式版本一起发布
fliter
2024/03/01
6800
元老与新秀:Go sort.Search()和sort.Find()
泛型简介
Go语言的泛型是在Go 1.18版本中引入的一个新特性,它允许开发者编写可以处理不同数据类型的代码,而无需为每种数据类型都编写重复的代码。以下是关于Go语言泛型的一些关键点:
孟斯特
2023/10/16
1750
泛型简介
Golang 1.18 泛型:零值判断
从 Golang 1.18 开始支持泛型,我们可以考虑使用泛型来实现支持任意类型的切片,那么需要判断泛型切片的元素是否为零值。
恋喵大鲤鱼
2023/04/23
1.1K0
Go 语言 15 个内置函数详解
Go 语言为了方便我们开发,提供了 15 个内置函数,比如 len、cap、make 和 new 等。
frank.
2023/09/08
6640
Go 语言 15 个内置函数详解
相关推荐
Go 1.21.0 新增 3 个内置函数详解
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文