go语言基础之函数有多个返回值

1、函数有多个返回值

示例1:

package main //必须有一个main包

import "fmt"

//go推荐用法
func myfunc01() (int, int, int) {
        return 1, 2, 3
}

func main() {
        a, b, c := myfunc01()
        fmt.Printf("a = %d, b = %d, c = %d\n", a, b, c)
}

执行结果:

a = 1, b = 2, c = 3

示例2:

package main //必须

import "fmt"

//go官方推荐写法
func myfunc02() (a int, b int, c int) {
        a, b, c = 111, 222, 333
        return
}

func main() {
        //函数调用
        a, b, c := myfunc02()
        fmt.Printf("a = %d, b = %d, c = %d\n", a, b, c)
}

执行结果:

a = 111, b = 222, c = 333

示例3:

package main //必须

import "fmt"

func myfunc02() (a, b, c int) {
        a, b, c = 111, 222, 333
        return
}

func main() {
        //函数调用
        a, b, c := myfunc02()
        fmt.Printf("a = %d, b = %d, c = %d\n", a, b, c)
}

执行结果:

a = 111, b = 222, c = 333

  

函数定义说明:

l func:函数由关键字 func 开始声明

l FuncName:函数名称,根据约定,函数名首字母小写即为private,大写即为public

l 参数列表:函数可以有0个或多个参数,参数格式为:变量名 类型,如果有多个参数通过逗号分隔,不支持默认参数

l 返回类型:

① 上面返回值声明了两个变量名o1和o2(命名返回参数),这个不是必须,可以只有类型没有变量名

② 如果只有一个返回值且不声明返回值变量,那么你可以省略,包括返回值的括号

③ 如果没有返回值,那么就直接省略最后的返回信息

④ 如果有返回值, 那么必须在函数的内部添加return语句