可变参数函数即其参数数量是可变的 : 0 个或多个;
声明可变参数函数的方式是在其参数类型前面带上省略符(…)前缀。
一个简单的可变参数函数:
1 | func test(input …string) string { |
可变参数函数会在其内部创建一个”新的临时切片”。事实上,可变参数是一个简化了切片类型参数传入的语法糖。
当不传入参数的时候,可变参数会成为一个空值切片( nil
)
当不太确定数据类型的时候我们通常采用空接口 interface{}
1 | tests1(789) |
输出结果
1 | value: 789 |
⚠️在使用interface{}作为可变入参时,传入的参数要先做类型转换(先转换为[ ]interface{})
1 | func testParams(args ...interface{}) { |
结果:
1 | 0 []---- 4 |