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
): p>
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