【发布时间】:2017-04-12 20:37:33
【问题描述】:
F# 允许重载函数仅通过可选参数来区分,例如:
type MyClass() =
member this.func(a: string, b:string) = "func(a,b)"
member this.func(a: string, ?b:string) = "func(a,?b)"
如何调用第一个函数?
【问题讨论】:
-
你可以在任何函数中重命名第二个参数:
type MyClass() = member this.func(a: string, b:string) = "func(a,b)" member this.func(a: string, ?c:string) = "func(a,?c)" let test = MyClass() let arg1 = "2" let arg2 = "12" test.func(arg1, b = arg2) |> printfn "%s" //func(a,b) test.func(arg1, c = arg2) |> printfn "%s" //func(a,?c)
标签: f#