kotlin基礎語法
kotlin基本資料型別
數值型別
型別 | 位寬度 |
---|---|
Int | 32 |
Long | 64 |
Float | 32 |
Double | 64 |
Short | 16 |
Byte | 8 |
字元 在kotlin中,char不能直接和數值進行操作。
fun switch(c: Char) {
if (c == 1) { // 錯誤:型別不相容
// todo
}
}
複製程式碼
布林
布林型別包含true和false
陣列
kotlin中的陣列使用類Array實現,與java不同的是,kotlin可以使用[]來替代java中的get和set操作。 陣列有兩種建立方式:
var arr1 = arrayOf(1, 2, 3)
var arr2 = Array(3) { item -> (item + 1) } //[1,2,3]
複製程式碼
字串
kotlin中的String同樣也是不可變的,同時kotlin中的string也支援使用[]來訪問每一個字元。
kotlin支援使用"""來顯示多行字串
var str = """
abcdefg
hijklmn
opqrst
uvwxyz
""".trimIndent()
複製程式碼
變數宣告
在kotlin中宣告變數只提供了兩個關鍵字,var和val。其中var用以宣告可變變數,val用以宣告不可變變數
//可變變數
var a = 1 //型別自動推斷
var b: Boolean = false
//不可變變數,它們的值不可被修改
val c = 2
val d: Boolean = true
複製程式碼
函式宣告
在kotlin中函式的宣告使用fun關鍵字,同java不同的是,kotlin變數的型別放在變數之後,返回值也同樣放在方法名之後。
有返回值的函式
fun add(a: Int, b: Int): Int {
return a + b
}
複製程式碼
無返回值的函式(note:kotlin中無返回值的函式其實是返回Unit型別,預設可以省略)
fun printHello() {
print("hello")
}
複製程式碼
可變長引數函式 函式的變長引數需要使用vararg關鍵字
fun printVararg(vararg list: String) {
for (item in list) {
println(item)
}
}
複製程式碼
lambda匿名函式
val add2: (a: Int, b: Int) -> Int = { a, b -> a + b }
複製程式碼
迴圈
for迴圈
在kotlin中,for迴圈可以對所有支援迭代器的物件進行遍歷。
//直接列印
for (item in arr1) {
println(item)
}
//通過索引列印
for (i in arr1.indices) {
println(arr1[i])
}
//同時列印索引和數值
for ((index, value) in arr1.withIndex()) {
println("$index : $value")
}
複製程式碼
while 和 do...while迴圈
這兩種迴圈基本可以看做是一樣的,不同的是do...while至少會執行一次。
fun testWhile() {
var n = 1;
do {
println("do...while loop")
} while (n > 1)
while (n > 1) {
println("while loop")
}
}
複製程式碼
執行上面的函式會列印
do...while loop
複製程式碼
跳轉和返回
kotlin同java一樣,也提供了break、continue和return,作用也同java一樣。
類和物件
類
kotlin中類可以包含:建構函式和初始化程式碼塊、函式、屬性、內部類、物件宣告。 kotlin使用class來宣告類。
class Car {
//裡面包含類的構成
var arg1 : Int = 1 //屬性
fun function1(){} //成員函式
}
//可以存在空類
class Empty
複製程式碼
如果想使用類不需要new關鍵字
var car=Car()
car.arg1 = 2 //使用.來呼叫屬性
car.function1() //使用.來呼叫函式
複製程式碼
class Cat(name: String) {
constructor(name: String, age: Int) : this(name) //次建構函式
}
複製程式碼