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