gpt4 book ai didi

F# 为什么我不能在 F# 交互中使用 :? 运算符?

转载 作者:行者123 更新时间:2023-12-05 08:42:37 25 4
gpt4 key购买 nike

我正在尝试检查变量是否属于特定类型,如下所示:

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

但在 F# interactive 中,我收到以下错误:

错误 FS0016:“字符串”类型没有任何适当的子类型,不能用作类型测试或运行时强制转换的来源。

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

最佳答案

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

试试这个:

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

对密封类型进行这种强制转换测试没有意义,因为它们不能有任何子类型,这就是错误消息告诉您的内容。

box 关键字将始终返回一个对象,无论源是引用类型(在本例中)还是值类型,在这种情况下它将“装箱”它。

关于F# 为什么我不能在 F# 交互中使用 :? 运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39452303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com