- 包聲明在源文件頂部(同Java)
- 定義變量:
- val:聲明後不可改變值
- var:聲明後值可以改變
//每行代碼不需要使用分號
val a: Int = 20 //完整樣式
val b = 20 //Kotlin可以自動推斷出是Int類型
val c: Int //無初始值,需要添加類型
c = 3 //賦值
- 定義函數:
關鍵字使用fun
//完整寫法
fun sum(a: Int,b: Int): Int{
return a + b
}
//表達式作爲函數體
fun sum(a: Int,b: Int) = a + b
//函數返回無意義的值
fun printSum(a: Int,b: Int):Unit{
println("sum of $a and $b is ${a + b}")
}
- 註釋
//行註釋
/*
塊註釋
*/
Kotlin塊註釋可以嵌套
- if/for/while/when
if(a > b){
//...
}else{
//...
}
for(item in items){
//...
}
while(index < items.size){
//...
index++
}
when(xxx){
1 -> "One"
"Hello" -> "World"
is Long -> "長整型"
else -> "error"
}
- in運算符,檢測某個數字是否在區間內
if(x in 1..y+1){
//...
}
- 可空值及null(空安全)
某個變量的值可以爲null的時候,必須在聲明的類型後添加"?"標識符,表示該引用可以爲空。
fun parseInt(str: String):Int?{
//...
}
- 字符串模板
Kotlin中可以使用字符串模板表達式,它會求值併合併到字符串中。以美元符號"$"開頭
val i = 10
val name = steven
println("i = $i")
//使用花括號括起來任意表達式
println("$name.length is ${name.length}")
- is運算符,檢測表達式是否是某類型的實例
if(obj is String){
//...
}
- Kotlin中DTO
data class Student(val name: String,val sex: String)
Kotlin中無需像Java一樣手寫get/set方法、toString()、hasCode()、equals()和copy()
- 源文件名稱
如果Kotlin文件包含單個類(和相關的頂層聲明),那麼文件名與該類的名稱相同,使用.kt擴展名;如果文件包含多個類或只包含頂層聲明,選擇一個可以描述文件包含內容的名字,以該名命名文件。使用駝峯風格。