在 F# 中,我可以在语法的各个地方使用模式匹配。例如:
但是我不知道如何做到这一点:
我语法错了吗?还是F#不支持在构造函数参数中使用模式匹配?
// Given this type...
type SingleCaseUnion = | SingleCaseUnion of int
/// ...I can do this:
let destructureInFunc (SingleCaseUnion n) =
printfn "%d" n
// ...and this:
type DestructureInMethod() =
member t.M(SingleCaseUnion n) =
printfn "%d" n
但是我不知道如何做到这一点:
type DestructureInCtor(SingleCaseUnion n) =
do printfn "%d" n
// type DestructureInCtor(SingleCaseUnion n) =
// ---------------------------------------^
//
// stdin(3,40): error FS0010: Unexpected identifier in type definition. Expected ')' or other token.
我语法错了吗?还是F#不支持在构造函数参数中使用模式匹配?