- Go语言开发实战(慕课版)
- 千锋教育高教产品研发部
- 274字
- 2020-08-27 13:29:33
2.1.3 变量多重赋值
变量多重赋值是指多个变量同时赋值。Go语法中,变量初始化和变量赋值是两个不同的概念。Go语言的变量赋值与其他语言一样,但是Go提供了其他程序员期待已久的多重赋值功能,可以实现变量交换。多重赋值让Go语言比其他语言减少了代码量。
以简单的算法交换变量为例,传统写法如下所示。
![](https://epubservercos.yuewen.com/7094E9/16221441004999606/epubprivate/OEBPS/Images/51578-0030-0053.jpg?sign=1739675596-NxlIDVZwlqodzy7H7CM3bKh1U0igf6Wj-0-fff12ca79e63eb60dc22376983f1171d)
新定义的变量是需要内存的,于是有人设计了新的算法来取代中间变量,其中一种写法如下所示。
![](https://epubservercos.yuewen.com/7094E9/16221441004999606/epubprivate/OEBPS/Images/51578-0030-0054.jpg?sign=1739675596-n1rwGhhs5fdA8cjcTtq15UOlSg3DjYKK-0-119ca1480c296480c2edb036f5b0ac31)
![](https://epubservercos.yuewen.com/7094E9/16221441004999606/epubprivate/OEBPS/Images/51578-0031-0055.jpg?sign=1739675596-NkNAX4IWYP0It7qhz1cCljmZMapkIpoJ-0-c9e86b70af6815bb86086093b31310d8)
以Go语言的多重赋值功能为例,写法如下所示。
![](https://epubservercos.yuewen.com/7094E9/16221441004999606/epubprivate/OEBPS/Images/51578-0031-0056.jpg?sign=1739675596-7eeXvVUdqwrAzGEREGa7jl0QYIJJU5vS-0-0996e607f1bd783985df2f71e7da8cc8)
从以上例子来看,Go语言的写法明显简洁了许多,需要注意的是,多重赋值时,左值和右值按照从左到右的顺序赋值。这种方法在错误处理和函数当中会大量使用。