Kotlin 常见的一些符号作用

总结下在kotlin常使用的一些东西和含义

val与var

1
2
3
val 是常量
var 是变量

我们经常能够遇到这个,kotlin提供了很好的编译检查功能,其中 ? 有一些常用的地方

1
private var name: String? = null

这个表示 变量 name 能够为空值

1
2
val video = Video.create()
video?.play()

这个说明如果video 不为空,那么就会调用play方法

1
2
fun name(name:String?) {
}

这里面告诉使用者,name有可能是一个空值

1
2
fun name(name:String?):String? {
}

这里面告诉使用者,name方法返回可能是一个空值

!!

使用的过程中也经常遇到

1
2
val video = Video.create()
video!!.play()

我们可以写 video!! ,这会返回一个非空的video b 值 或者如果 video 为空,就会抛出一个 NPE 异常

::

1
startActivity(Intent(this@KotlinActivity, MainActivity::class.java))

得到类的Class对象

?:

一般存在2中写法,

1
val a: Int = if (b != null) b.length else -1 

在kotlin中 条件表达式具备返回值,上面的写法我们可以用Elvis操作符(?:)来简写

1
val a: Int = b?.length ?: -1 

这样是不是简单了很多呢

== 与 ===

== 判断值是否相等。
=== 判断值及引用是否完全相等。

1
2
3
4
val num = 128
val a:Int? = num
val b:Int? = num
println("a == b = ${a == b} \n a === b = ${a === b}")

a == b = true
a === b = false

a 和 b 都是一个常量,引用的地址当然是不一样的

_

这个一般是选择忽略返回值

1
2
3
data class Book(var id: Int, var name: String)
val book = Book(0, "vanda")
val (id, _) = book