Kotlin经常使用符号

  • $
println("itemB:$itemB") 
//字符串模板 
var userInfo = "name:${user.name}, age:$age"

  • 表示对象可能为空
//在变量类型后面加上问号,表明该变量是可空变量  
var name: String? = "zhangsan" 
/**
 * 若是str不能转为Int类型,则返回null
 */
fun parseInt(str: String): Int? { 
  // (代码略)
}
b?.length //若是 b非空,就返回 b.length ,不然返回 null,这个表达式的类型是 Int? 。
  • ?:
//若是r非空,我使用它;不然使⽤某个非空的值 x ”:
 val l = b?.length ?: -1
  • !!
//返回一个非空的 b 值 或者若是 b 为空,就会抛出一个 NPE 异常
val l = b!!.length
  • ==,===

==判断值是否相等,===判断值及引用是否彻底相等。函数

  • ..
    Kotlin中有区间的概念,区间表达式由具备操做符形式 .. 的 rangeTo 函数辅以 in 和 !in 造成。 区间是为任何可比较类型定义的,但对于整型原生类型,它有一个优化的实现。
if (i in 1..10) { // 等同于 1 <= i && i <= 10
    println(i)
}
  • _
data class Book(var id: Int, var name: String)
val book = Book(1, "英语")
val (id, _) = book
  • ::
    获取类的属性,方法
  • @
//一、限定this的类型
class User {
    inner class State{
        fun getUser(): User{
            //返回User
            return this@User
        }
        fun getState(): State{
            //返回State
            return this@State
        }
    }
}
//二、做为标签
loop@ for (itemA in arraysA) {
     var i : Int = 0
      for (itemB in arraysB) {
         i++
         if (itemB > 2) {
             break@loop
         }
         println("itemB:$itemB")
     }
}

参考文献: https://blog.csdn.net/zxc123e/article/details/73368781oop

相关文章
相关标签/搜索