Go語言中函數可以返回多個值,這和其它編程語言有很大的不同。對於有其它語言編程經驗的人來說,最大的障礙不是學習這個特性,而是很難想到去使用這個特性。
簡單如交換兩個數值的例子:
package main import "fmt" func swap(a int, b int) (int, int) { return b, a } func main() { a := 1 b := 2 a, b = swap(a, b) fmt.Println(a) fmt.Println(b) }
輸出結果為:
2
1
如果在其它語言中,我們第一想到的肯定是建立一個中間變量做交換。但在Go使用返回多個值的功能很容易的就實現了。
另外,在Go中,聲明的變量沒有使用的話,編譯無法通過。所以如果多返回值函數返回的值中,有的不需要,可以用下划線來接收值,表示丟棄這個值,如上面的例子中,只需要返回的第一值,可以這樣:
a, _ = swap(a, b)
