OCaml中的“`”是什么?

时间:2013-10-21 15:40:51

标签: ocaml

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

购买之前有`,这是什么意思?

类型[ | ]是什么?

1 个答案:

答案 0 :(得分:7)

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

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

在您的情况下,dir可以采用值“买入”或“卖出”,模式匹配也相应地起作用:

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

match x.dir with 
| `Buy -> 1
| `Sell -> 2