Function 调用函数时声明参数的名称

Function 调用函数时声明参数的名称,function,arguments,julia,keyword-argument,Function,Arguments,Julia,Keyword Argument,在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 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)
24.0

非常感谢@ARamirez。事实上,它是有效的。你知道用分号声明函数有什么好处吗。为什么没有一种声明函数的方法(没有分号)?这是一个很好的问题,关于
将位置参数与关键字参数分开,并且只有位置参数参与方法分派(例如,请参见此处的讨论:)。举例说明考虑< <代码> f(x::数)=“一个数”之间的区别;f(x::Int)=“一个整数!”和
g(;x::Number)=“一个数字”;g(;x::Int)=“一个整数”
。您会发现,对于
g
,只有一个方法存在,因为第二个方法覆盖了第一个方法,而对于
f
有一个方法用于
Int
,还有一个方法用于
Float
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