如何在F#中获取值的数据类型

时间:2015-11-18 10:37:56

标签: f#

考虑我有convert这样的函数,它可以返回int或抛出异常。

我需要检查这个函数的数据类型吗?

类似的东西:

>>> a = 1
>>> type(a)
<type 'int'>

我怎样才能在F#中做到?

1 个答案:

答案 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"

请注意,您只能对引用类型执行这些运行时类型测试,因此需要使用框。

相关问题