【发布时间】:2018-10-10 20:15:02
【问题描述】:
我这里有一个奇怪的。我想匹配泛型参数的类型。这是我目前所拥有的:
open System.Reflection
type Chicken = {
Size : decimal
Name : string
}
let silly<'T> x =
match type<'T> with
| typeof<Chicken> -> printfn "%A" x
| _ -> printfn "Didn't match type"
enter code here
我希望silly<'T> 函数采用通用参数,然后匹配函数中的类型以确定输出。现在我收到一个关于不正确缩进的编译器错误。我很确定缩进很好,但是我正在做的事情编译器根本不喜欢。想法?我有一个蛮力解决方法,但这种方法会简单得多。
【问题讨论】:
-
为什么需要匹配
System.Type而不是match box arg with :? Chicken ...?拳击是必要的,但您仍然可以将arg限制为'T。 -
@kaefer 装箱如果已知参数是引用类型也是免费的。
标签: generics f# pattern-matching