julia函数参数(2)【可选参数】和【关键字参数】

2021-02-03  本文已影响0人  昵称违法

上一篇文章
《julia函数参数(1)参数的【可选】和【默认值】》
https://www.jianshu.com/p/39acc43b5596

讲了可选参数的函数及其用法。

现在讲另外一种情况:假如你的函数有多个可选参数,你如何处理?

先以股票卖出举一个例子:
我以前有一个函数,它的功能是卖出持有的某只股票,并且是全部卖出,当时没有考虑比如只卖出1/2,或者1/3等情况。
当时原型如下:

function sell(code)
  #
end

现在我要更新功能,如何处理呢,增加一个变量amount,默认值 设为1,1 = 全部卖出

function sell(code,amount = 1)
  #
end

后来在处理期货的时候,sell功能不够用了,为啥,期货涉及【平今仓】,【平昨仓】,那又得增加一个默认值的参数,例如:

function sell(code,amount = 1,pc_type = "平今")
  #
end

有多个可选参数的时候,一旦其中七个可选参数要指定值,那么其它可选参数也得指定值,能不能,我只需要指定一个可选参数的值,解决方法就是用关键字参数。

定义如下,注意,关键字参数放在分号【;】后面

function sell(code ; amount = 1,pc_type = "平今")
  #
end

举例

#可选参数
function test1(name,age,sex = "男") #sex是可选参数
    (name," ",age," ",sex)
end

test1("李四",60)

#可选参数
function test2(name,age,sex = "男",country = "大清") #sex 和 nation都是可选参数
    (name," ",age," ",sex," ",country)
end

test2("李四",60,"民国")

#关键字参数
function test3(name,age;sex = "男",country = "大清") #sex 和 nation都是可选参数
    (name," ",age," ",sex," ",country)
end

#关键字参数函数的调用:关键字参数可指定其中一个或者多个,非关键字的参数不能省略,函数自动按顺序拾取非关键字参数值
test3("李四",60)
test3("李小四",60,country = "民国")
test3(sex = "男","亨拜登",50,country = "美利坚")
test3(sex = "男","亨拜登",country = "美利坚",50)

运行结果

image.png

总结
当一个函数有多个可选参数的时候,采用关键字参数

上一篇 下一篇

猜你喜欢

热点阅读