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