默认参数
函数参数可以有默认值,默认值在对应的参数未提供时被函数使用。相对其他语言而言这样可以减少重载方法数量。
fun read(b: Array<Byte>, off: Int = 0, len: Int = b.size()) {}
默认值被定义在参数类型后面,使用=紧跟默认值。
重写方法也会使用和基类方法中的一样的默认值。当使用默认值重写方法时,默认参数值必须从方法签名中忽略,不然会编译出错。
open class A {
open fun foo(i: Int = 10) { ... }
}
class B : A() {
override fun foo(i: Int) { ... } // no default value allowed
}