调用函数时声明参数名称

问题描述 投票:3回答:1

Julia 1.4.0中,我具有以下功能:

function output(W::Int64,F::Int64,P::Int64,S::Int64)
       return ((W-F+2*P)/S +1)
       end

当我输入以下命令时,输出符合预期

julia> output(28,5,0,1)
24.0

现在,为了确定哪个参数是什么,我在调用该函数时要显式命名它们(如果可以的话,可以用不同的顺序写参数,这将很有帮助)

julia> output(W=28,F=5,P=0,S=1)
ERROR: MethodError: no method matching output(; W=28, F=5, P=0, S=1)
Closest candidates are:
  output(::Int64, ::Int64, ::Int64, ::Int64) at REPL[23]:2 got unsupported keyword arguments "W", "F", "P", "S"
  output(::Any, ::Any, ::Any, ::Any) at REPL[2]:2 got unsupported keyword arguments "W", "F", "P", "S"
Stacktrace:
 [1] top-level scope at REPL[25]:1

还有其他类似方法吗?

function arguments julia kwargs
1个回答
3
投票

您想对函数使用关键字参数(您可以阅读有关关键字参数in the Julia docs的更多信息]

要用关键字参数声明函数,您应该这样做(注意参数前的分号:]

function output(;W::Int64,F::Int64,P::Int64,S::Int64)
       return ((W-F+2*P)/S +1)
end

然后,您可以根据需要运行函数:

julia> output(W=28,F=5,P=0,S=1)
24.0
© www.soinside.com 2019 - 2024. All rights reserved.