【问题标题】:Julia: Equivalent of *args from Python in Julia?Julia:相当于 Julia 中 Python 中的 *args?
【发布时间】:2018-06-24 11:22:22
【问题描述】:

在 Julia 中是否有与 Python 中的 *args 等效的命令?我问是因为我正在尝试编写一个数值积分函数,它的参数是一个可能取决于几个常数的函数。例如,如果我的 Julia 函数是

function func(x,a,b)
return a*x + b
end

有没有办法制作数组

args = [a,b]

并将此函数称为

val = func(x,*args)?

【问题讨论】:

  • 欢迎来到 SO。请完成游览,您将了解How to create a Minimal, Complete, and Verifiable example 并相应地修改问题以最小化工作示例。如果不发布您的代码,您可能会删除您的问题。使用您声明的跟踪和错误代码...人们更愿意帮助您,以便双方都可以学习。尽情享受吧 ;-)
  • 敲出自己的here 来学习语言。然后展示你尝试过的一些努力......至少看起来像“我试图解决我自己的问题”。

标签: julia


【解决方案1】:

这在 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)

【讨论】:

  • 您展示的是不同的东西(即如何将 任意 个参数传递给函数,也称为“可变参数”函数)。 OP想要的更简单。给定一个已经定义的 func(x,a,b) 函数,他们只需要将它称为 func(x, args...)
猜你喜欢
  • 1970-01-01
  • 2021-09-14
  • 2015-05-17
  • 2023-02-06
  • 2019-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多