函数声明

  • 声明函数使用关键字fun
  • 函数的参数类型要声明在参数的右侧中间用 : 分割
  • 函数的返回值类型声明在函数的右侧中间用 : 分割
    声明一个没有返回值的函数:
fun main() {
        
    }

声明具有返回值的函数:

fun sum(x: Int, y: Int): Int {
        return x + y
    }

变量声明

  • var 声明可读可写变量
  • val 声明只读变量
  • 变量的类型声明在变量右侧,中间用 : 分割,如果满足类型推断,则可以省略
  • 创建对象直接调用构造器,不需要 new 关键字
    声明可读可写变量:
var age: Int = 18

声明只读变量:

val name: String = "you are lucky dog"

声明对象:

val user:User = User()

类型推断

在变量声明的基础上,如果表达式的右侧的类型是可以推断出来的,那么类型可以省略

var age = 18
val name = "you are lucky dog"
val user = User()

继承类/实现接口

继承类和实现接口都是用的 : ,如果类中没有构造器,需要在父类类名后加上 ()

class TestActivity : BaseActivity(), View.OnClickListener {
}

空安全设计

Kotlin中的类型分为 可空类型不可空类型

可空类型:

var et: EditText?

不可空类型

var et: EditText

调用符

  • !! 强行调用符
  • ? 安全调用符

关键字

lateinit

  • lateinit 只能修饰var可读可写变量
  • lateinit关键字声明的变量类型必须是不可空类型
  • lateinit声明的变量不能又初始值
  • lateinit声明的变量不能是基本数据类型
  • 在构造器中初始化的属性不需要lateinit

平台类型

在类型后面加上一个感叹号的类型是平台类型
Java中可以通过注解减少这种平台类型的产生

  • @Nullable 表示可空类型
  • @NotNull @NonNull 表示不可空类型

类型判断

  • is 判断属于某类型
  • !is 判断不属于某类型
  • as 类型强转,失败时抛出类型强转失败异常
  • as? 类型强转,失败时不会抛出异常而是返回null

获取Class对象

使用类名::class 获取的是 Kotlin 的类型
使用类名::class.java 获取的是 Java 的类型

如果觉得我的文章对你有用,请随意赞赏