5
type t = {
      dir : [ `Buy | `Sell ];
      quantity : int;
      price : float;
      mutable cancelled : bool;
    }

BuySell之前有一个`,是什么意思?

还有什么类型[ | ]

4

1 回答 1

7

` 和 [] 语法用于定义多态变体。它们在精神上类似于内联变体定义。

http://caml.inria.fr/pub/docs/manual-ocaml-4.00/manual006.html#toc36

在您的情况下, dir 可以取值 `Buy 或 `Sell,并且模式匹配会相应地工作:

let x = { dir = `Buy, quantity = 5, price = 1.0, cancelled = true }

match x.dir with 
| `Buy -> 1
| `Sell -> 2
于 2013-10-21T15:55:45.953 回答