Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F# 灵活的类型和泛型参数_F#_Flexible Type - Fatal编程技术网

F# 灵活的类型和泛型参数

F# 灵活的类型和泛型参数,f#,flexible-type,F#,Flexible Type,我想知道为什么第二行告诉我柔性类型受到了限制。 很明显,我们可以绕过它,但有什么教训可以从中吸取吗 type DataTable with static member FromObjArray (input : seq<#seq<'T>>) = () //keep the flexibility static member FromObjArray<'T> (input : seq<#seq<'T>>) =

我想知道为什么第二行告诉我柔性类型受到了限制。 很明显,我们可以绕过它,但有什么教训可以从中吸取吗

type DataTable with
    static member FromObjArray     (input : seq<#seq<'T>>) =  ()  //keep the flexibility
    static member FromObjArray<'T> (input : seq<#seq<'T>>) =  ()  //constrained to seq
使用

静态成员FromObjArray(input:seq)(input:seq我认为灵活类型在第二种情况下受到约束,因为您显式地将该方法声明为仅具有一个类型参数
'T
的泛型方法。灵活类型将被删除到另一个类型参数,编译器无法添加该参数(隐藏)如果使参数显式,请键入参数

第一个声明对应如下内容:

static member FromObjArray<'T, 'S when 'S :> seq<'T>> (input : seq<'S>) =  ()

static member FromObjArray>(输入:seqgood to know.。我想我有一段时间对此感到困惑,但没有澄清根本原因。