小编Pra*_*hav的帖子

为什么这个F#/ OCaml"匹配"表达式编译?

这段代码在F#和OCaml中编译得很好:

let testmatch k =
    match k with
    | jqk3jtl23jtlk123 -> true
Run Code Online (Sandbox Code Playgroud)

我在FSI和utop都进行了测试.它总是回归true.

jqk3jtl23jtlk123是完全随机的,其类型推断为'a.即使我k使用数据类型(例如let testmatch (k: int) =)进行约束,它也会编译(尽管明显将约束testmatch的类型限制为int -> bool而不是'a -> bool.

有人可以解释一下发生了什么吗?特别:

  • 为什么编译器接受完全随机的文字jqk3jtl23jtlk123
  • 为什么我没有获得无穷无尽的比赛警告?
  • 这场比赛实际上是做什么的?

f# ocaml pattern-matching

8
推荐指数
2
解决办法
199
查看次数

标签 统计

f# ×1

ocaml ×1

pattern-matching ×1