考虑我有convert
这样的函数,它可以返回int
或抛出异常。
我需要检查这个函数的数据类型吗?
类似的东西:
>>> a = 1
>>> type(a)
<type 'int'>
我怎样才能在F#中做到?
答案 0 :(得分:2)
typeof<'T>
会返回所提供类型的Type
,而a.GetType()
会告诉您特定对象的Type
。最后,a :? 'T
会告诉您特定对象是否属于特定类型'T
。
因此转换可能是
let covert a =
match box a with
| :? int as i -> i
| _ -> failwith "a is not an int"
请注意,您只能对引用类型执行这些运行时类型测试,因此需要使用框。