美文网首页
julia函数参数(2)【可选参数】和【关键字参数】

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

作者: 昵称违法 | 来源:发表于2021-02-03 13:50 被阅读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

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

    相关文章

      网友评论

          本文标题:julia函数参数(2)【可选参数】和【关键字参数】

          本文链接:https://www.haomeiwen.com/subject/fiwptltx.html