Go 函数返回


返回值

如果希望函数有返回值,则需要定义返回值的数据类型(如int,string等),也可以使用return函数内的关键字:

语法

func FunctionName( param1 type, param2 type) type {
   // code to be executed
  return output
}

函数返回示例

示例

这里,myFunction()接收两个整数 (xy)并返回它们的加法(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!
亲自试一试 »

示例

在这里,我们将两个返回值存储到两个变量中(ab):

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
亲自试一试 »