赞
踩
本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注"慕课网"!
作者:tonybai|慕课网讲师
正在如火如荼地开发当中,按照Go核心团队的一年两次的发布节奏来算,Go 1.21版本预计将在2023年8月发布(G0 1.20版本是在2023年2月份发布的)。
本文将和大家一起看看Go 1.21都会带来哪些新特性。不过由于目前为时尚早,下面列出的有些变化最终不一定能进入到Go 1.21的最终版本中,所以切记一切变更要以最终Go 1.21版本发布时为准。
在细数变化之前,我们先来看看Go语言的当前状态。
一个月后的四月初,TIOBE排行榜上,Go稳住了第10名的位次:
在国内,在鹅厂前不久发布的《2022年腾讯研发大数据报告》中,
在国内,继Go在2021年从C++手中躲过红旗首次登顶鹅厂最热门编程语言之后,在鹅厂前不久发布的《2022年腾讯研发大数据报告》中,[Go蝉联鹅厂最热门编程语言],继续夯实在国内头部互联网公司内的优势地位:
Go于2009年开源,在经历多年的宣传和鼓吹后,Go目前进入了平稳发展的阶段。疫情结束后,原先线上举办或取消的国内外的Go技术大会现在陆续又都开始恢复了,相信这会让更多开发人员接触到Go。像Go这样的能在世界各地持续多年举办技术大会的语言真是不多了。
接下来,我们就来聚焦到Go 1.21版本,挖掘一下这个版本都有哪些新特性。
目前Go 1.21版本里程碑中涉及语言变化的有大约2项,我们来看看。
Go 1.21增加了一个clear预定义函数用来做切片和map的clear操作,其原型如下:
- // $GOROOT/src/builtin.go
-
- // 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是针对map和slice的操作函数,它的语义是什么呢?我们通过一个例子来看一下:
- package main
-
- import "fmt"
-
- func main() {
- var sl = []int{1, 2, 3, 4, 5, 6}
- fmt.Printf("before clear, sl=%v, len(sl)=%d, cap(sl)=%d\n", sl, len(sl), cap(sl))
- clear(sl)
- fmt.Printf("after clear, sl=%v, len(sl)=%d, cap(sl)&#
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。