简体   繁体   English

OCaml:函数参数的默认值?

[英]OCaml: Default values for function arguments?

In PHP, default values for arguments can be set as follows: 在PHP中,参数的默认值可以设置如下:

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

Is there similar functionality in OCaml? OCaml中是否有类似的功能?

OCaml doesn't have optional positional parameters, because, since OCaml supports currying, if you leave out some arguments it just looks like a partial application. OCaml没有可选的位置参数,因为,由于OCaml支持currying,如果省略一些参数,它看起来就像是一个部分应用程序。 However, for named parameters, there are optional named parameters. 但是,对于命名参数,有可选的命名参数。

Normal named parameters are declared like this: 正常命名参数声明如下:

let foo ~arg1 = arg1 + 5;;

Optional named parameters are declared like this: 可选的命名参数声明如下:

let odp ?(ftw = "OMG!!") () = print_endline ftw;;

(* and can be used like this *)
odp ~ftw:"hi mom" ();;
odp ();;

Note that any optional named parameters must be followed by at least one non-optional parameter, because otherwise eg "odp" above would just look like a partial application. 请注意,任何可选的命名参数必须后跟至少一个非可选参数,否则例如上面的“odp”看起来就像是部分应用程序。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM