Hello World
老規矩,讓我們懷念一下——用Kotlin
輸出Hello, World!
:
fun main() {
println("Hello World")
}
和其他語言相似,Kotlin
也是以main()
函數作爲程序運行的入口的。
變量聲明
Kotlin
聲明變量使用兩個關鍵字:val
和var
。
val
:聲明一個值不可更改的變量。可以在聲明的適合初始化,也可以先聲明後初始化,一旦初始化,就不能再對它重新賦值,否則報錯。可以把使用這個聲明的變量理解爲一個“常量”。var
:聲明一個值可更改的變量。
提到變量聲明,不得不說變量的類型。Kotlin
內置衆多數值類型:
關鍵字 | 範圍 |
---|---|
Int |
|
Byte |
|
Short |
|
Long |
|
Float |
|
Double |
Kotlin
中聲明變量的語法——變量類型寫在變量名後面:
val constant: Int = 1 /* 聲明一個名爲constant的Int型的“不可變”變量 */
var variable: Byte /* 聲明一個名爲variable的Byte型的“可變”變量 */
注意:Kotlin
語句不使用;
(分號)結尾。(當然,加上似乎也不會報錯)
建議:明確val
和var
的使用,優先考慮使用val
。
函數聲明
函數的聲明使用fun
關鍵字(和JavaScript
相似),下面聲明瞭一個沒有返回值的函數:
fun myFunc() {
// TODO
}
有返回值的怎麼聲明呢?參考變量的聲明:
fun myFunc(): String {
return "Hello Kotlin"
}
當然,Kotlin
支持這麼玩:
fun myFunc(): String {
return if (true) {
"True"
} else {
"False"
}
}
上面這個有點類似於C/C++
語言中的冒號表達式condition ? true : false
(很可惜,Kotlin
不支持這個)。
還可以這麼玩
fun myFunc(): String = if(true) {
return "True"
} else {
return "False"
}
這種情況可以看成是將return
關鍵字用=
替換了。
很容易推想出,需要給傳入參數的話,這麼定義:
fun myFunc(id: Int): String = if(id) {
return "True"
} else {
return "False"
}
匿名函數
Kotlin
支持匿名函數。匿名函數就是沒有函數名稱的函數。
舉個例子:
定義一個匿名函數:
val strLenFunc: (String) -> Int = { input ->
input.length
}
該函數完成的功能是接收一個字符串類型的變量輸出,然後輸出它的長度(類型爲整型值)。
調用該匿名函數:
val strLen: Int = strLenFunc("Kotlin")
不難看出,除了定義的時候有些奇特,調用匿名函數的時候跟普通函數差不多。
高階函數
函數也是分階級的。一個函數可以將另一個函數當作參數,將其他函數用作參數的函數稱爲高階函數。
舉個例子:
fun strMapper(str: String, mapper: (String) -> Int): Int {
return mapper(str)
}
類
類的聲明和定義
和C++、Java一樣,是通過關鍵字class
來完成。
如果沒有顯示聲明,類中出現的變量、函數的訪問類型均爲public
,即可從外部訪問。