OCaml:函数参数的默认值?

时间:2009-09-15 03:04:44

标签: function arguments ocaml default-value

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

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

OCaml中是否有类似的功能?

1 个答案:

答案 0 :(得分:27)

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

正常命名参数声明如下:

let foo ~arg1 = arg1 + 5;;

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

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

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

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