检查类型OCaml

时间:2018-02-06 15:14:07

标签: types ocaml

我想编写一个根据输入类型执行不同操作的函数。或者换句话说:如何编写与此python代码等效的代码:

def stringOrInt(a):
     if type(a) is str:
         return "it's a string"
     elif type(a) is int:
         return "it's a int"
     else
         return "it's neither"

1 个答案:

答案 0 :(得分:1)

Ocaml不支持对类型的检查。根据您的要求,可能的解决方法是使用变体 type StrOrInt = String of string | Int of int | Neither

然后你的函数会在变体上进行模式匹配

let str_or_int a = match a with 
| String s -> print_string "this is a string"
| Int i -> print_string "this is an int"
| Neither -> print_string "neither"