如果用了代码中使用了 as, in等关键字,需要用'' 区分。下面是几种关键字的说明
1.object
单例对象声明,线程安全
2.companion
类内部的对象声明可以用 companion 关键字标记:
class MyClass {
companion object Factory {
fun create(): MyClass = MyClass()
}
}
该伴生对象的成员可通过只使用类名作为限定符来调用:
val instance = MyClass.create()
复制代码
可以省略伴生对象的名称,在这种情况下将使用名称 Companion:
class MyClass {
companion object { }
}
val x = MyClass.Companion
复制代码
3.operator
如:String::plus
4.reified
用来定义参数类型
5.internal
如果你不指定任何可见性修饰符,默认为 public,这意味着你的声明将随处可见; 如果你声明为 private,它只会在声明它的文件内可见; 如果你声明为 internal,它会在相同模块内随处可见; protected 不适用于顶层声明。
6. in 相当于java的 super( 父类) ,out相当于java的 extend(子类)
fun copy(from: Array<out Any>, to: Array<Any>) { …… }
Array<? extends Object>
复制代码
fun fill(dest: Array<in String>, value: String) { …… }
Array<? super String>
复制代码