Fork me on GitHub

Go语言开发-过程式编程-自定义函数-可变参数函数

5.6.1.2. 可变参数函数

可变参数函数是其最后一个(或仅有的一个)参数可以接受零个或多个参数的函数。这些函数是通过在最后一个或仅有的一个参数类型之前放置省略号(…)来表示的,在函数内部,该参数的类型是给定类型的切片。例如,如果有一个函数Join(xs …string) string,参数xs的类型则为[]string。下面的例子演示了可变参数函数的使用;函数的作用是返回给定int类型参数的最小值。我们将从函数的调用和输出开始介绍。

MinimumInt1()函数接受一个或多个int类型的值并返回其最小值。

我们也可以很容易的实现接受最小零个参数的函数,如MinimumInt0(ints …int);或者至少两个参数的函数,如MinimumInt2(first,second int, rest…int)。

如果我们有一个int类型的切片,依旧可以使用MinimumInt1()函数来获得其最小值。

MinimumInt1()函数需要一个int类型的值和零个或多个附加的int类型的值。当调用可变参数函数或方法时,我们可以在切片后面放置一个省略号,这样可以有效地将切片转换为一个参数序列,且每个参数对应于切片中的项。(之前我们在讨论内置的append()函数时已做了介绍。)所以,这里我们将numbers[1:]转换为单独的参数6, 2, -1, 7, -3, 9,这些数据就存储在rest切片中。如果我们刚才实现了提到的MinimumInt0()函数,我们可以将对函数的调用简化为MinimumInt0(numbers…)。


目录


作者:Johnson
原创文章,版权所有,转载请保留原文链接。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注