如何在Julia中编写一个接受可变数量参数的函数?

4

我正在尝试编写一个函数,它应该允许接受可变数量的参数。然而,在Julia中如何实现这一点并不太清楚。

1个回答

5
在Julia中,与许多其他语言一样,存在编写Vararg函数的能力。这些函数允许传递可变数量的参数。在这里是一个有关此概念的Julia文档的快速参考和示例:
julia> varargs(a,b,c...) = (a,b,c)
varargs (generic function with 1 method)

julia> varargs(5, 10)
(5, 10, ())

julia> varargs(3,4,5)
(3, 4, (5,))

julia> varargs(10, 20, 30, 40, 50, 60, 70, 80)
(10, 20, (30, 40, 50, 60, 70, 80))

julia> d = (2,3,4,5,6,7,8,9)
(2, 3, 4, 5, 6, 7, 8, 9)

julia> varargs(1,2,d)
(1, 2, ((2, 3, 4, 5, 6, 7, 8, 9),))

再强调一下,在我们定义varargs函数并写下c...时,关键的魔法就发生了。这种符号使得可变大小参数这个概念得以实现。


1
为了扩展你的回答,我认为值得注意的是,取决于上下文,三个点“...”的效果被称为 slurping(在函数定义的签名中)和 splatting(在函数调用中)。此外,您可能希望展示如何使用可变数量的输入参数分派此类函数,即 parametric VarArg 类型。 - carstenbauer
Vararg,不是VarArg。 - Mageek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接