在 Julia 中将对象数组解包为函数参数

BoZ*_*haa 4 julia

如何将值数组解包为函数参数?

例如,函数Iterators.product()以可变数量的迭代器作为参数,即

collect(Iterators.product(1:2, 3:5))
  2×3 Array{Tuple{Int64,Int64},2}:
   (1, 3)  (1, 4)  (1, 5)
   (2, 3)  (2, 4)  (2, 5)
Run Code Online (Sandbox Code Playgroud)

给定一个迭代器数组,例如a=[1:2, 3:5],你如何在a不手动访问它的元素的情况下解包a[1](例如,当a事先不知道的长度时)?

我希望 Python 中有类似于星号运算符的东西(类似于Iterators.product(*a)),但我还没有找到类似的东西。

BoZ*_*haa 6

找到答案,而不是fun(*arr)使用fun(arr...).

  • 它被命名为“splat”运算符。来自[文档](https://docs.julialang.org/en/v1/base/base/):“splat”运算符“...”表示一系列参数。`...` 可以在函数定义中使用,以指示该函数接受任意数量的参数。`...` 也可用于将函数应用于参数序列。 (2认同)