Go 版本迭代
GO1.18 2022.2
GO1.19 2022.8
GO1.20 2023.2
GO1.21 2023.8
GO1.22 2024.2
Go 1.22新改动
// go1.22新改动:循环变量会给新的内存地址,而不是循环变量赋新的值。
func main() {
for i := 0; i <= 5; i++ {
fmt.Printf("循环遍历的地址i的地址:%v\n", &i)
}
}
// go1.22新改动:可以for-range一个整数。
func main() {
for i := range 5 {
fmt.Println(i)
}
}
Go 1.21新改动
clear函数
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)=%d\n", sl, len(sl), cap(sl))
var m = map[string]int{
"tony": 13,
"tom": 14,
"amy": 15,
}
fmt.Printf("before clear, m=%v, len(m)=%d\n", m, len(m))
clear(m)
fmt.Printf("after clear, m=%v, len(m)=%d\n", m, len(m))
}
max min函数
func main() {
fmt.Println(max(1, 2, 3))
fmt.Println(min(1, 2, 3))
}
maps
slices
Go 1.20新改动
package time
const (
DateTime = "2006-01-02 15:04:05"
DateOnly = "2006-01-02"
TimeOnly = "15:04:05"
)
func main() {
fmt.Println(time.Now().Format(time.DateTime))
}
Go 1.19新改动
Go 1.18新改动
泛型