gpt4 book ai didi

F# 检查变量是否属于子类型

转载 作者:行者123 更新时间:2023-12-02 08:38:44 26 4
gpt4 key购买 nike

要检查变量a 的类型是否为T,我可以使用

if (a :? T)

但是如果 T 是一个普遍定义的并且有几个子类型 T1,T2,T3 ,我只对检查 a 的类型是 T1?例如:

type Uni = Iu of int
| Flu of float
| Su of string
| Bu of bool
| Lu of Uni List
| Fu of (Uni -> Uni)

如何检查变量 aString 的类型是否为 Su

感谢您的帮助。

最佳答案

您可以使用带有下划线(通配符)模式的模式匹配来忽略 float 值:

let isSu = function Su _ -> true | _ -> false

虽然您可以将像 Uni 这样的可区分联合视为具有一些基类和许多子类型的类层次结构,但我认为这在这种情况下没有多大帮助。最好将它们视为可以具有多种可能表示之一的类型。因此,您实际上只是检查一个值是否使用 Su 大小写表示,而不是“检查子类型”。

关于F# 检查变量是否属于子类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18746042/

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