- 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=1738917704-oEO2Js7mg4Byr9lkzWagemxkAGzAZbEi-0-19c5128567fb00df3ceb315c601e4a00)
新定义的变量是需要内存的,于是有人设计了新的算法来取代中间变量,其中一种写法如下所示。
![](https://epubservercos.yuewen.com/7094E9/16221441004999606/epubprivate/OEBPS/Images/51578-0030-0054.jpg?sign=1738917704-qc2D4HvgIEa68Yu8w7FQkGxooWRJlhhG-0-4fbad139b90b03ec4ae0ad4881e0e8ad)
![](https://epubservercos.yuewen.com/7094E9/16221441004999606/epubprivate/OEBPS/Images/51578-0031-0055.jpg?sign=1738917704-720L2aGSZigbZyZYprPTBaAPcG8Q9D6f-0-1acb6262168c8efdad8dc566bdc5f735)
以Go语言的多重赋值功能为例,写法如下所示。
![](https://epubservercos.yuewen.com/7094E9/16221441004999606/epubprivate/OEBPS/Images/51578-0031-0056.jpg?sign=1738917704-LYSn2vNccIXZYX5nb8xkRUv6WK8CaQOG-0-04014e6a1f88e634f79dbc2dbe98a069)
从以上例子来看,Go语言的写法明显简洁了许多,需要注意的是,多重赋值时,左值和右值按照从左到右的顺序赋值。这种方法在错误处理和函数当中会大量使用。