![Go语言开发实战(慕课版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/52/28438052/b_28438052.jpg)
上QQ阅读APP看书,第一时间看更新
2.1.3 变量多重赋值
变量多重赋值是指多个变量同时赋值。Go语法中,变量初始化和变量赋值是两个不同的概念。Go语言的变量赋值与其他语言一样,但是Go提供了其他程序员期待已久的多重赋值功能,可以实现变量交换。多重赋值让Go语言比其他语言减少了代码量。
以简单的算法交换变量为例,传统写法如下所示。
![](https://epubservercos.yuewen.com/7094E9/16221441004999606/epubprivate/OEBPS/Images/51578-0030-0053.jpg?sign=1738809233-fz5wflLsJ6Nh4tsRUQdtKPmHRvzcSmMV-0-cd8766f64fb077ef1ea4cc8896183831)
新定义的变量是需要内存的,于是有人设计了新的算法来取代中间变量,其中一种写法如下所示。
![](https://epubservercos.yuewen.com/7094E9/16221441004999606/epubprivate/OEBPS/Images/51578-0030-0054.jpg?sign=1738809233-1KkMKQhSXept2SCRaoUvsnCX1YqCeYGG-0-fc698e985bd69da761b9fd80b8b13670)
![](https://epubservercos.yuewen.com/7094E9/16221441004999606/epubprivate/OEBPS/Images/51578-0031-0055.jpg?sign=1738809233-fPRKtoOtMLDDA4w2aUOoUvqUxk4o42Mp-0-a2ac5098a6cdf72172f44b4e11be927c)
以Go语言的多重赋值功能为例,写法如下所示。
![](https://epubservercos.yuewen.com/7094E9/16221441004999606/epubprivate/OEBPS/Images/51578-0031-0056.jpg?sign=1738809233-hNSKYaHJqGUtQWaSC7ZgbiCtqapE0eaW-0-c14d1deb2f946d3b47e315cbebd520b4)
从以上例子来看,Go语言的写法明显简洁了许多,需要注意的是,多重赋值时,左值和右值按照从左到右的顺序赋值。这种方法在错误处理和函数当中会大量使用。