天天看点

kotlin-小抄(二)操作符和重载

操作符优先级表

kotlin-小抄(二)操作符和重载
  • eg:重载操作符
data class Counter(var index : Int)
// 实现重载必须使用operator修饰符修饰一个从重载操作符函数
operator fun Counter.plus(increment : Int) :Counter  {
    return Counter(index + increment)
}

使用
val counter = Counter(1)
val resul = counter.plus(10)
println(result)
           

相等和不相等操作符

  • 引用相等 (不可重载)
    • ===
    • !==
  • 结构相等
    • ==
    • !=
a == b <=> a?.equals(b)?:(b===null)
a != b <=> !(a?.equals(b)?:(b===null))
           

Elvis操作符 ?:

  • 精简版的三元运算符
  • 主要用来做null安全检查
result = x ?: 0 <=> val result = if (x!==null)  x else 0
           

包声明

  • JVM平台会默认导入下面的包
java.lang.*
kotlin.jvm.*
           
  • js平台上会默认导入下面的包
kotlin.js.*