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