Kotlin 基礎(chǔ)語法

定義和引入Java一樣咏闪,在文件開頭曙搬, 行結(jié)束不需要” ; “

package com.test.hello

import android.os.Bundle
  • 變量

只讀變量,val 開頭,初始化后不能再賦值纵装,相當(dāng)于Java的 final 變量

val a: Int = 1
val b = 1 //類型自動推斷為Int
val c: Int //沒有初始化時必須指定類型
c = 1 //初始化

可變變量, var 關(guān)鍵字開頭

var x = 10
x = 3
  • 函數(shù)

函數(shù)定義 fun 開頭征讲, 完整的定義如下:

fun sum(a: Int, b: Int): Int {
    return a + b
}

可以簡化成表達(dá)式,返回值自動推斷

fun sum(a: Int, b: Int) = a + b

函數(shù)沒有返回值時橡娄,可以不寫或者返回 Unit

fun test(arg: String) {
    println(arg)
}

或者

fun test(arg: String): Unit {
    println(arg)
}
  • 注釋

和Java一樣诗箍,支持行注釋 " // " 和 塊注釋 "/* */"。
不同之處挽唉,Kotlin支持塊注釋嵌套滤祖,建議不用。

  • if else

使用條件語句, 和Java一樣

fun min(a: Int, b: Int): Int {
    if (a > b) {
        return b
    } else {
        return a
    }
}

Kotlin支持if 表達(dá)式瓶籽,以上代碼可以寫成: fun min(a: Int, b: Int) = if (a > b) b else a

  • for
fun main(args: Array<String>) {
    for (arg in args) {
        println(arg)
    }
}

或者

for (i in args.indices) {
    println(args[i])
}
  • while

和Java類似

fun main(args: Array<String>) {
    var i = 0
    while (i < args.size) {
        println(args[i++])
    }
}
  • when

when匠童,支持豐富的功能, 比Java的 switch 自由

fun case(a: Int) {
    when (a) {
        1 -> println("1")
         2 -> println("2")
         else -> println("else")
    }
}
  • 范圍, 集合

使用 in 檢查一個數(shù)值是否在某個范圍之內(nèi)

if (x in 1..10) {
    // do
}

檢查一個數(shù)值是否在某個范圍之外

if (x !in 0..10) {
    //
}

在一個值范圍內(nèi)進(jìn)行遍歷迭代

for (x in 0..10) {
    //
}

使用 in 檢查一個集合是否包含某個對象

if (name in names) { //names.contains()
    //
}

在一個集合上進(jìn)行遍歷迭代

for (name in names) {
   println(name)
}
  • null檢查

當(dāng)一個引用可能為 null 值時, 對應(yīng)的類型聲明必須明確地標(biāo)記為可為 null塑顺。

fun parseInt(str: String): Int? {
   // todo
}

fun main(args: Array<String>) {
   var name: String?
   val x = parseInt(args[0])
   if (x != null) { // check null
       // todo
   }
}
  • is 類型

is 檢查一個表達(dá)式的值是不是某個類型的實例汤求, 如果對一個不可變的局部變量或?qū)傩赃M(jìn)行過類
型檢查, 那么之后的代碼就不必再對它進(jìn)行顯式地類型轉(zhuǎn)換。

fun getStringLength(obj: Any): Int? {
    if (obj is String && obj.length > 0) {
        return obj.length // obj as String after is
    }
    return null
}

參考
《Programming Kotlin》Stephen Samuel 严拒,Stefan Bocutiu
《Kotlin in Action》Dmitry Jemerov扬绪,Svetlana Isakova

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市糙俗,隨后出現(xiàn)的幾起案子勒奇,更是在濱河造成了極大的恐慌,老刑警劉巖巧骚,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赊颠,死亡現(xiàn)場離奇詭異,居然都是意外死亡劈彪,警方通過查閱死者的電腦和手機竣蹦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沧奴,“玉大人痘括,你說我怎么就攤上這事√戏停” “怎么了纲菌?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長疮绷。 經(jīng)常有香客問我翰舌,道長,這世上最難降的妖魔是什么冬骚? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任椅贱,我火速辦了婚禮懂算,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘庇麦。我一直安慰自己计技,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布山橄。 她就那樣靜靜地躺著垮媒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪驾胆。 梳的紋絲不亂的頭發(fā)上涣澡,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天,我揣著相機與錄音丧诺,去河邊找鬼入桂。 笑死,一個胖子當(dāng)著我的面吹牛驳阎,可吹牛的內(nèi)容都是我干的抗愁。 我是一名探鬼主播,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼呵晚,長吁一口氣:“原來是場噩夢啊……” “哼蜘腌!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起饵隙,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤撮珠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后金矛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體芯急,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年驶俊,在試婚紗的時候發(fā)現(xiàn)自己被綠了娶耍。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡饼酿,死狀恐怖榕酒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情故俐,我是刑警寧澤想鹰,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站药版,受9級特大地震影響辑舷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜刚陡,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一惩妇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧筐乳,春花似錦歌殃、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至勃刨,卻和暖如春波材,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背身隐。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工廷区, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人贾铝。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓隙轻,卻偏偏與公主長得像,于是被迫代替她去往敵國和親垢揩。 傳聞我的和親對象是個殘疾皇子玖绿,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,678評論 2 354

推薦閱讀更多精彩內(nèi)容