调用函数时声明参数名称
Declaring the name of argument when invoking a function
在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
是否可以采用其他类似的方法?
您想为函数使用关键字参数(您可以阅读有关关键字参数的更多信息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
在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
是否可以采用其他类似的方法?
您想为函数使用关键字参数(您可以阅读有关关键字参数的更多信息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