例如:數組
var a: Int = 1
val b = 2
val c: Int = 0
var d: Int = 0
複製代碼
var age: String? = "abc" //加 ? 可爲空
val age2 = age!!.toInt() //拋出空指針異常
val age3 = age?.toInt() //不作處理,返回null
val age4 = age?.toInt() ?: -1 //age爲空時,返回-1
text.trimMargin()
複製代碼
val items = listOf("item1", "item2", "item3")
for (item in items) {
println(item)
}
for (index in items.indices) {
println("item at $index is ${items[index]}")
}
//輸出
// item at 0 is apple
// item at 1 is banana
// item at 2 is kiwi
複製代碼
//[1,2,3]
val a = arrayOf(1, 2, 3)
//[0,2,4]
val b = Array(3, { i -> (i * 2) })
for (i in a.indices) {
println("eche element : " + a[i])
}
複製代碼
if-else
複製代碼
val sss = 5
val validNumbers = 11..19
when (sss) {
0, 1 -> print("x == 0 or x == 1")
in 1..10 -> print("x is in the range")
in validNumbers -> print("x is valid")
!in 10..20 -> print("x is outside the range")
else -> print("none of the above")//若是包含了全部的狀況,就不須要寫else了
}
fun hasPrefix(x: Any): Boolean = when (x) {
is String -> x.startsWith("prefix")//當是string類型,則運算startsWith(),返回是否以特定前綴結尾
else -> false//不是string類型,直接返回false
}
//判斷某個值是否在一個set集合裏面
val items = setOf("apple", "banana", "kiwi")
when {
"orange" in items -> {
println("juicy")
println("{do something}")
}
"apple" in items -> {
println("apple is fine too")
println("do another thing!")
}
}
複製代碼
val e: Byte = 1
val f: Int = e.toInt()//轉換
複製代碼
中綴操做符 asbash
eg: val x: String = y as String
val x: String? = y as String?
val x: String? = y as? String
複製代碼