Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.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#_Duck Typing - Fatal编程技术网

如何使用多个参数在F#中隐藏类型方法?

如何使用多个参数在F#中隐藏类型方法?,f#,duck-typing,F#,Duck Typing,除了最简单的类型外,我不知道如何进行duck键入。这里我得到了错误预期的3个表达式,得到了2个。我不知道这是什么意思。就像这样: /// Sets a dependency property let inline setDP (prop: DependencyProperty) (v: obj) (target: ^a when ^a: (member SetValue: DependencyProperty * obj -> unit)) = ( ^a : (member Set

除了最简单的类型外,我不知道如何进行duck键入。这里我得到了错误
预期的3个表达式,得到了2个
。我不知道这是什么意思。

就像这样:

/// Sets a dependency property
let inline setDP (prop: DependencyProperty) (v: obj) (target: ^a when ^a: (member SetValue: DependencyProperty * obj -> unit)) =
    ( ^a : (member SetValue: DependencyProperty * obj -> unit) (prop,v))
    target
我很惊讶这句话的语法有多古怪。这和结构语法无疑是F#的两个弱点。

类似于这样:

/// Sets a dependency property
let inline setDP (prop: DependencyProperty) (v: obj) (target: ^a when ^a: (member SetValue: DependencyProperty * obj -> unit)) =
    ( ^a : (member SetValue: DependencyProperty * obj -> unit) (prop,v))
    target

我很惊讶这句话的语法有多古怪。这和结构语法无疑是F#的两个弱点。

注意,您不需要在方法签名中指定(duck)类型。编译器将为您解决这个问题。请注意,您不需要在方法签名中指定(duck)类型。编译器会帮你弄明白的。