美文网首页
Go_036_函数参数

Go_036_函数参数

作者: 为宇绸缪 | 来源:发表于2023-08-28 12:23 被阅读0次

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

    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_函数参数

          本文链接:https://www.haomeiwen.com/subject/jnygmdtx.html