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
),并使用裸返回语句返回该值(这意味着我们使用 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