太长不读版
相比带来的好处,默认参数带来的麻烦太多了。个人建议不要使用默认参数。
正文
先看一个简单的例子:
class A {
func haha(value: Int = 5) {
print(value)
}
}
let a: A = A()
a.haha()
随便找一个学习了一两天 Swift 的程序员,都知道这个运行结果是输出
5
但是如果我们接着写:
// 写一个 B 继承 A
class B: A {
override func haha(value: Int = 10) {
print(value)
}
}
let a: A = B()
a.haha()
这个时候输出结果又是什么呢?到底是 5
还是 10
呢?
如果代码是:
let b = B()
b.haha()
输出又是什么呢?