任何人都可以解释这种OCaml顶级行为吗?
# 1________________________________1;;
- : int = 11
(大行是一系列下划线:'_')
出于好奇,这个程序也在ocamlc下编译。
答案 0 :(得分:19)
OCaml中允许使用下划线(并忽略)。来自http://www.cs.ru.nl/~tews/htmlman-3.10/lex.html#xhtoc5:
为了方便和可读性,在整数文字中接受(并忽略)下划线字符(_)。
答案 1 :(得分:5)
这是一个非常有用的功能,可以避免错误并简化大整数的读取:
1_000_000_000
比100000000
更容易阅读(您注意到我忘了零吗?)。
答案 2 :(得分:3)
有几种编程语言接受下划线字符作为整数中的非重要字符。 Ada,Perl,OCaml以及可能的其他一些语言使用它来分离数千,数百万和数十亿......但你可以在整数内的任何地方使用_
。