2009-09-15 69 views

Trả lời

23

OCaml không có tham số vị trí tùy chọn, bởi vì, vì OCaml hỗ trợ currying, nếu bạn bỏ qua một số đối số, nó trông giống như một phần ứng dụng. Tuy nhiên, đối với các tham số được đặt tên, có các tham số có tên tùy chọn.

Bình thường đặt tên các tham số được khai báo như thế này:

let foo ~arg1 = arg1 + 5;; 

Tùy chọn đặt tên các tham số được khai báo như thế này:

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

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

Lưu ý rằng bất kỳ tên thông số tùy chọn phải được theo sau bởi ít nhất một phi tùy chọn tham số, vì nếu không, ví dụ "odp" ở trên sẽ trông giống như một ứng dụng một phần.

+0

thông thường, tôi chỉ sử dụng "let foo arg1 = arg1 + 5 ;;", không có dấu "~". quan điểm đó là gì? –

+0

bạn có thể đọc về chúng tại đây: http://caml.inria.fr/pub/docs/manual-ocaml/manual006.html#htoc37 – newacct

+2

Liên kết được cập nhật: http://caml.inria.fr/pub/docs/ manual-ocaml/lablexamples.html # sec43 – neo

Các vấn đề liên quan