Golang语言多个变量同时赋值

2023-01-24 0 513

程式设计最单纯的演算法众所周知,要数表达式互换。互换表达式的常用演算法须要两个尾端表达式展开表达式的临时性留存。用现代方式撰写表达式互换标识符如下表所示:

var a int = 100 var b int = 200 var t intt = a a = b b = t fmt.Println(a, b)

在计算机系统刚发明者时,缓存十分“精贵”。此种表达式互换常常是十分奢华的。只好计算机系统“大牛”发明者了许多演算法来防止采用尾端表达式:

var a int = 100 var b int = 200 a = a ^ b b = b ^ a a = a ^ b fmt.Println(a, b)

这种的演算法许多,但都有很大的值覆盖范围和类别明确要求。

到了Go词汇时,缓存无须是短缺天然资源,所以读法能更单纯。采用 Go 的“双重表达式”优点,能随心所欲顺利完成表达式互换的各项任务:

var a int = 100 var b int = 200b, a = a, b fmt.Println(a, b)

双重表达式时,表达式的左值和左值按右面的次序表达式。

双重表达式在Go词汇的consequences和表达式codice中会大批地采用。比如采用Go词汇展开次序时就须要采用互换,标识符如下表所示:

type IntSlice []int func (p IntSlice) Len() int { return len(p) } func (p IntSlice) Less(i, j int) bool { return p[i] < p[j] } func (p IntSlice) Swap(i, j int) { p[i], p[j] = p[j], p[i] }

标识符说明如下表所示:

第 1 行,将 IntSlice 声明为 []int 类别。第 3 行,为 IntSlice 类型撰写两个 Len 方式,提供切片的长度。第 5 行,根据提供的 i、j 元素索引,互换两个元素的值。

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务