【问题标题】:OCaml: Default values for function arguments?OCaml:函数参数的默认值?
【发布时间】:2010-11-28 08:05:05
【问题描述】:

在 PHP 中,参数的默认值可以设置如下:

function odp(ftw = "OMG!!") {
   //...
}

OCaml 中是否有类似的功能?

【问题讨论】:

    标签: function arguments ocaml default-value


    【解决方案1】:

    OCaml 没有可选的位置参数,因为 OCaml 支持柯里化,如果你省略一些参数,它看起来就像一个部分应用程序。但是,对于命名参数,还有可选的命名参数。

    普通的命名参数是这样声明的:

    let foo ~arg1 = arg1 + 5;;
    

    可选的命名参数声明如下:

    let odp ?(ftw = "OMG!!") () = print_endline ftw;;
    
    (* and can be used like this *)
    odp ~ftw:"hi mom" ();;
    odp ();;
    

    请注意,任何可选的命名参数必须后跟至少一个非可选参数,否则例如上面的“odp”看起来就像一个部分应用程序。

    【讨论】:

    猜你喜欢
    • 2011-02-20
    • 2011-04-09
    • 1970-01-01
    • 2019-09-11
    • 2012-08-03
    • 2015-07-08
    • 2011-08-26
    • 1970-01-01
    相关资源
    最近更新 更多