F#为什么可以';我不能用:?F#交互中的操作员?

F#为什么可以';我不能用:?F#交互中的操作员?,f#,typechecking,f#-interactive,F#,Typechecking,F# Interactive,我试图检查变量是否属于某种类型,如下所示: let s = "abc" let isString = s :? string 但在F#interactive中,我得到了以下错误: 错误FS0016:类型“string”没有任何正确的子类型,不能用作类型测试或运行时强制的源。 为什么会这样?我希望IString是一个bool。因为您正在尝试使用密封类型 请尝试以下方法: let s = box "abc" let isString = s :? string 使用密封类型执行此强制测试没有任何

我试图检查变量是否属于某种类型,如下所示:

let s = "abc"
let isString = s :? string
但在F#interactive中,我得到了以下错误:

错误FS0016:类型“string”没有任何正确的子类型,不能用作类型测试或运行时强制的源。


为什么会这样?我希望IString是一个bool。

因为您正在尝试使用密封类型

请尝试以下方法:

let s = box "abc"
let isString = s :? string

使用密封类型执行此强制测试没有任何意义,因为它们不能有任何子类型,这就是错误消息告诉您的。

因为您正在尝试使用密封类型

请尝试以下方法:

let s = box "abc"
let isString = s :? string

使用密封类型执行此强制测试没有意义,因为它们不能有任何子类型,错误消息就是这么告诉您的。

这是因为您正在尝试使用密封类型。这是因为您正在尝试使用密封类型。