Julia函数默认参数

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)

显而易见,也可为所有的参数提供默认值,下面仍以鼠标移动函数为例:
Julia默认参数

可见此时提供的实参会按序传递到参变量中。

默认参数机制在很多时候能够为开发者提供很大的方便,在代码重构、改造或进行兼容性设计时,也会大有用处。

但由于参数表是有序的,所以使用默认参数也是有约束的。在定义中,有默认值的参数只能放在参数表的尾部,而且有默认值和无默认值的参数不能混杂。因为无默认值的参数必须在函数调用时优先提供,所以只能放在参数表前部。如果在任意默认参数后出现了无默认值的参数,函数定义时便不会成功,并上报语法错误,提示“optional positional arguments must occur at end”。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!