【发布时间】:2017-08-24 13:00:00
【问题描述】:
在我的A.swift 文件中
class A {
func c(d: String = "abc") {
// (1)
}
}
在我的B.swift 文件中
class B {
func z() {
let aaa = A()
aaa.c()
}
}
extension A {
func c(d: String = "abc", e: String = "123") {
// (2)
}
}
现在,我想知道:z() 被称为 (1) 还是 (2)?又是如何决定的?
【问题讨论】:
-
你自己试过了吗?
-
是的!它被称为 (1) 但我不明白为什么
-
请参阅What is the difference between static func and class func in Swift? 及其其他答案。您要问的主要是静态与动态调度,您可以使用“静态调度 [swift]”搜索更多相关问题
-
@Honey 这个问题和dispatch无关,这是关于函数参数重载的问题
-
@taylorswift 你是对的。我就把它留在那里,所以你的评论不会毫无意义......
标签: swift overloading