Julia默认参数
如果有些参数遵循某种惯例,或者只在特定的场景下才会使用,则可以为参数提供可选值(Optional)或默认值。基本语法为:
function函数(参数1, 参数2, ... 参数m=默认值m, 参数n=默认值n)
# 实现体
end
或
函数(参数1, 参数2, ... 参数m=默认值,参数n=默认值) = 复合表达式
例如函数mouse_move(x, y, speed)
控制着鼠标的移动,其中,参数x和y为目的位置,参数speed控制着移动速度。如果speed有惯用的取值,则可以默认参数的形式提供:
function mouse_move(x, y, speed=50)
#
end
该函数调用时,便可以不提供speed参数。
当然,也可以提供speed值,以替换掉默认参数值:
julia> mouse_move(40, 120, 90); # 以90的速度移动到坐标(40,120)
显而易见,也可为所有的参数提供默认值,下面仍以鼠标移动函数为例:
可见此时提供的实参会按序传递到参变量中。
默认参数机制在很多时候能够为开发者提供很大的方便,在代码重构、改造或进行兼容性设计时,也会大有用处。
但由于参数表是有序的,所以使用默认参数也是有约束的。在定义中,有默认值的参数只能放在参数表的尾部,而且有默认值和无默认值的参数不能混杂。因为无默认值的参数必须在函数调用时优先提供,所以只能放在参数表前部。如果在任意默认参数后出现了无默认值的参数,函数定义时便不会成功,并上报语法错误,提示“optional positional arguments must occur at end”。
酷客网相关文章:
评论前必须登录!
注册