原文地址:https://www.jianshu.com/p/ce58bc8885e2
可以給一個函數的返回值指定名字。如果指定了一個返回值的名字,則可以視為在該函數的第一行中定義了該名字的變量。
讓我們寫一個函數 rectProps,它接受一個矩形的長和寬,並返回該矩形的面積和周長。
package main import ( "fmt" ) func rectProps(length, width float64) (area, perimeter float64) { area = length * width perimeter = (length + width) * 2 return //no explicit return value } func main() { area, perimeter := rectProps(10.8, 5.6) fmt.Printf("Area %f Perimeter %f", area, perimeter) }
在上面的函數中,area
和 perimeter
是命名返回值。注意 return
語句沒有指定任何返回值。因為在函數聲明時已經指定 area
和 perimeter
是返回值,在遇到 return
語句時它們會自動從函數中返回。
在 Golang 中,有返回值的函數,無論是命名返回值還是普通形式的返回值,函數中必須包含 return
語句。