Julia:Julia中类似于Python中的*args的语法是什么?

3
有没有类似于Python中的*args命令的Julia命令?我问这个问题是因为我正在尝试编写一个数值积分函数,其参数是一个可能依赖于几个常量的函数。例如,如果我的Julia函数是:
function func(x,a,b)
return a*x + b
end

有没有一种方法可以创建一个数组:args = [a,b],并调用这个函数:val = func(x,*args)?与之相关的技术为it。

欢迎来到 SO。请完成新手引导,你将了解如何创建“最小、完整和可验证示例”,并根据最小工作示例修改问题。如果没有发布你的代码,你的问题可能会被删除。通过分享你所尝试过的代码,人们更愿意帮助你两者都能学到。享受使用 SO;-) - ZF007
这里学习这门语言吧,尽情享受吧。然后展示一些你的努力...至少要有一些看起来像“我试图解决自己的问题”的东西。 - ZF007
1个回答

6
这在Julia中非常容易。在函数定义的最后一个参数后面加上...,使其接受作为元组传递的任意数量的参数。
function func(x,args...)
    result = zero(x*args[1])
    for (i,arg) in enumerate(args)
        result += arg * x^(length(args) - i) 
    end
    result
end

这个术语可以叫做任何一种方式:

args = [a, b]
val = func(x, args...)

# or
val = func(x, a, b)

3
你展示的是另一件事情(即如何向函数传递任意数量的参数,也被称为“可变参数”函数)。而问题作者想要的更简单。已经定义了一个名为 func(x,a,b) 的函数,他们只需要将其调用为 func(x, args...) - Tasos Papastylianou

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