Go 函式返回值
返回值
如果你希望函式返回一個值,你需要定義返回值的**資料型別**(例如 `int
`, `string
` 等),並在函式內部使用 **return
關鍵字**。
語法
func FunctionName(param1 type, param2 type) type {
// 要執行的程式碼
return output
}
函式返回值示例
示例
在這裡,myFunction()
接收兩個整數(x
和 y
)並將它們的和(x + y
)作為整數(int
)返回。
package main
import ("fmt")
func myFunction(x int, y int) int {
return x + y
}
func main() {
fmt.Println(myFunction(1, 2))
}
結果
3
命名返回值
在 Go 中,你可以為函式的返回值命名。
示例
在這裡,我們將返回值命名為 result
(型別為 int
),並使用裸返回( naked return )返回該值(意味著我們使用 return
語句而不指定變數名)。
package main
import ("fmt")
func myFunction(x int, y int) (result int) {
result = x + y
return
}
func main() {
fmt.Println(myFunction(1, 2))
}
結果
3
上面的示例也可以這樣寫。在這裡,return 語句指定了變數名。
示例
package main
import ("fmt")
func myFunction(x int, y int) (result int) {
result = x + y
return result
}
func main() {
fmt.Println(myFunction(1, 2))
}
將返回值儲存在變數中
你也可以像這樣將返回值儲存在變數中:
示例
在這裡,我們將返回值儲存在一個名為 total
的變數中。
package main
import ("fmt")
func myFunction(x int, y int) (result int) {
result = x + y
return
}
func main() {
total := myFunction(1, 2)
fmt.Println(total)
}
自己動手試一試 »
多返回值
Go 函式還可以返回多個值。
示例
在這裡,myFunction()
返回一個整數(result
)和一個字串(txt1
)。
package main
import ("fmt")
func myFunction(x int, y string) (result int, txt1 string) {
result = x + x
txt1 = y + " World!"
return
}
func main() {
fmt.Println(myFunction(5, "Hello"))
}
結果
10 Hello World!
示例
在這裡,我們將兩個返回值儲存到兩個變數(a
和 b
)中。
package main
import ("fmt")
func myFunction(x int, y string) (result int, txt1 string) {
result = x + x
txt1 = y + " World!"
return
}
func main() {
a, b := myFunction(5, "Hello")
fmt.Println(a, b)
}
結果
10 Hello World!
如果(出於某種原因)我們不想使用某些返回值,我們可以新增一個下劃線(_
)來忽略該值。
示例
在這裡,我們想忽略第一個返回值(result
- 儲存在變數 a
中)。
package main
import ("fmt")
func myFunction(x int, y string) (result int, txt1 string) {
result = x + x
txt1 = y + " World!"
return
}
func main() {
_, b := myFunction(5, "Hello")
fmt.Println(b)
}
結果
Hello World!
示例
在這裡,我們想忽略第二個返回值(txt1
- 儲存在變數 b
中)。
package main
import ("fmt")
func myFunction(x int, y string) (result int, txt1 string) {
result = x + x
txt1 = y + " World!"
return
}
func main() {
a, _ := myFunction(5, "Hello")
fmt.Println(a)
}
結果
10