我想编写一个根据输入类型执行不同操作的函数。或者换句话说:如何编写与此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"
答案 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"