1、函数语法

func 函数名 (形参列表) (返回值类型列表) {
    执行语法...
    return 返回值列表
}

举例:

// 函数返回两个数的最大值
func max(num1 int, num2 int) int {
    var result int
    if num1 > num2 {
	result = num1
    } else {
	result = num2
    }
    return result
}

注意:如果返回一个值时,返回值类型列表,可以不写()  

 

2、函数返回多个值

// 函数交换值
func swap(str1 string, str2 string) (string, string) {
    return str2, str1
}

注意:

a. 函数的形参列表可以是多个,返回值列表也可以是多个(如果返回多个值时,在接受时,希望忽略某个返回值,则使用 _ 符号表示占位忽略)

b. 首字母大写该函数可以被本包文件和其他包文件使用,类似public,首字母小写,只能被本包文件使用,其他包文件不能使用,类似private

c. 如果希望函数内的变量能修改函数外的变量,可以传入变量的地址&,函数内以指针的方式操作变量,从效果上类似引用

 

3、给函数起别名

type 自定义数据类型名 数据类型 //相当于起了一个别名

举例:

type myfunc func(int,int) int

  

4、支持函数返回值命名

func cal(a int, b int) (sum int, sub int) {
    sum = a + b
    sub = a - b
    return
}

  

5、Go支持可变参数

func main() {
    res := sum(10, 20, 30)
    fmt.Printf("res=%d\n", res)
}

func sum(a int, args ...int) int {
    sum := a
    for i := 0; i < len(args); i++ {
	sum += args[i]
    }
    return sum
}

argsslice,通过args[index]可以访问各个值。

 

posted on 2022-03-02 23:26  smile学子  阅读(18)  评论(0编辑  收藏  举报