`OCaml中的运算符

`OCaml中的运算符,ocaml,Ocaml,操作员在OCaml中做什么 let int_of_meth = function | `GET -> 0 | `POST -> 1 | `PUT -> 2 | `DELETE -> 3 | `HEAD -> 4 | `PATCH -> 5 | `OPTIONS -> 6 | _ -> failwith "non standard http verbs not suppo

操作员在OCaml中做什么

let int_of_meth = function
  | `GET     -> 0
  | `POST    -> 1
  | `PUT     -> 2
  | `DELETE  -> 3
  | `HEAD    -> 4
  | `PATCH   -> 5
  | `OPTIONS -> 6
  | _        -> failwith "non standard http verbs not supported"

我在OCaml手册中找不到它。

这个
`
不是真正的操作员。它在词法级别工作(就像字符串的引号),并将以下符号变成“多态变体”。参见@Edgar Aroutiounian给出的链接:

更新

实际上,
`
被扫描为一个单独的符号,如@gsg所示。所以像Abc这样的多态变体是一种句法结构。我仍然认为它不是通常意义上的操作员


(编辑:改为Abc。我从来不知道它们应该大写。例如,lablgl界面似乎一直使用小写。)

这不像字符串引号:`和符号是单独的标记,它们之间可以有空格。我不知道你可以包含空格!这是一个微不足道的事实,但它极大地改变了我对多态变体的看法。你是对的,我刚刚检查了lexer.mll。我会更新我的答案。好吧,根据手册,多态变体应该从大写字母开始,这样就不会与关键字冲突。但是很多人(包括我自己)不遵守这个要求。我甚至不知道你可以有非资本化的PV!