我正在尝试检查某个变量是否属于某种类型:
let s = "abc"
let isString = s :? string
但在F#interactive中,我收到以下错误:
error FS0016: The type 'string' does not have any proper subtypes and cannot be used as the source of a type test or runtime coercion.
为什么会这样?我希望isString是一个bool。
答案 0 :(得分:8)
因为你正在尝试使用密封型。
请改为使用:
let s = box "abc"
let isString = s :? string
使用密封类型执行此强制测试没有意义,因为它们不能具有任何子类型,而这正是错误消息告诉您的内容。