我收到编译时错误,指出 myFunc 引用不明确。
func f (s: String) -> String { return "version 1: " + s }
func f(sourceString s: String) -> String { return "version 2: " + s }
var myFunc: (String)-> String = f as (sourceString : String)->String
如何显式引用上例中重载函数 f 的每个版本?如果我注释掉任一声明func f
它将编译并运行。但我想知道如果两个函数都已声明,如何引用每个函数。谢谢。
我不知道如何做你想要的,但这也许有帮助:
var myFunc1: (String)-> String = { s in f(sourceString: s) }
var myFunc2: (String)-> String = { s in f(s) }
您现在可以致电:
let s1 = myFunc1("one") // returns "version 2: one"
let s2 = myFunc2("two") // returns "version 1: two"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)