Go_036_函数参数

形式参数
形式参数: 没有确定的值,实际上传什么就接受什么,相当于占位符,把位置占着

func add(a, b int) { 
    fmt.Println(a + b)
}

实际参数
实际参数:是真正传到函数当中的值,就是真正需要处理运算的数
实际参数就相当于执行了一个变量赋值,把变量赋值给函数当中的形式参数

add(1, 10)

位置参数
位置参数,有时也称必备参数,指的是必须按照正确的顺序将实际参数传到函数中,换句话说,调用函数时传入实际参数的数量和位置都必须和定义函数时保持一致。
下面的代码就是位置参数,如果写成 add(1) 或 add(1, 2, 3) 就会因为参数过少或者过多而报错
完整代码

package main

import "fmt"

func add(x, y int) {
    fmt.Println(x + y)
}

func main() {
    add(1, 2)
}

不定长参数
如果想要一个函数能接收任意多个参数,或者这个函数的参数个数你无法确认,就可以使用不定长参数,也叫可变长参数。Go语言中的可变参数通过在参数名后加...来标识。

package main

import (
    "fmt"
    "reflect"
)

func add(s ...int) {
    // 会把切片传给x
    fmt.Println(s, reflect.TypeOf(s))
    var ret = 0
    for _, v := range s {
        ret += v
    }
    fmt.Println(ret)
}

func main() {
    add(1, 2, 3, 4, 5)
}

运行结果

[1 2 3 4 5] []int
15

你可能感兴趣的:(Go_036_函数参数)