`OCaml中的运算符
操作员在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
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!