如果希望函数有返回值,则需要定义返回值的数据类型(如int
,string
等),也可以使用return
函数内的关键字:
func
FunctionName(
param1
type,
param2
type)
type {
// code to be executed
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
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!