优点

  • 支持文件级别的函数、变量声明

  • 行尾不需要分号

  • 关键字区别
    var 变量 val 常量

常量的另外一种表达方式:

companion object {
    const val hello: String = "HELLO"
}
  • 类型定义
    变量、函数返回值、参数类型,都是在后面加上:类型。

变量可以不加类型,赋值的时候会自动判断。

数组的类型不是"类型[]",而是使用类"Array<类型>"来定义数组

可空类型:变量后+?表示变量是可空类型,可以赋值为null。

调用外部类的this,this@外部类类名

  • return更加精确
    return@xx,可以指定return的具体位置。

与java类大不一样

https://blog.csdn.net/qq_37080185/article/details/114531221

  • 接口实现
    https://blog.csdn.net/qq_37299249/article/details/79946269

    //对象获取
    person.javaClass// javaClass
    person::class.java // javaClass
    //类获取
    Person::class// kClass
    person.javaClass.kotlin// kClass
    (Person::class as Any).javaClass// javaClass
    Person::class.java // javaClass
  • 对象属性调用
    ?.表示当前对象如果为空则不执行,可以省去很多的if非空判断
    !!.表示当前对象如果为空也执行,然后会抛出空异常

  • 继承类

方式1:
:类名()

方式2:
还有一种形式,类名不加构造方法,在类里面声明构造方法。

class MaskFilterCustomView : View{
    constructor(context: Context, attributeSet: AttributeSet): super(context,attributeSet)

}

位运算

https://blog.csdn.net/u010428110/article/details/106824749

关键字

缺点

基本类型没有隐式拓宽转换,只能通过方法显示拓宽。

分类: Kotlin

0 条评论

发表回复

您的电子邮箱地址不会被公开。