Golang使用返回两个变量的函数

时间:2014-10-23 16:28:54

标签: go return

假设有一个函数返回两个变量。

func num(a,b int) (int,int) {
    return a+b, a-b
}

http://play.golang.org/p/bx05BugelV

并假设我有一个只需要一个int值的函数。

package main

import "fmt"

func main() {
    fmt.Println("Hello, playground")
    _, a := num(1, 2)
    prn(a)

}

func num(a, b int) (int, int) {
    return a + b, a - b
}

func prn(a int) {
    fmt.Println(a)
}

http://play.golang.org/p/VhxF_lbVf4

无论如何我只能获得第二个值(a-b)而没有_,a:= num(1,2)?? 像prn(num(1,2)[1])< - 这样的东西不起作用,但我想知道是否有类似的方式

谢谢

1 个答案:

答案 0 :(得分:3)

使用包装函数。例如,

package main

import "fmt"

func main() {
    _, a := num(1, 2)
    prn(a)
    prn1(num(1, 2))

}

func num(a, b int) (int, int) {
    return a + b, a - b
}

func prn(a int) {
    fmt.Println(a)
}

func prn1(_, b int) {
    prn(b)
}

输出:

-1
-1