kotlin中的常見符號

  • ?可空類型

表示這個(gè)對象可能為空

var a: String? = "aaa"
  • ?.安全調(diào)用符

val len = a?.length //如果 a非空芥驳,就返回 a.length 资柔,否則返回 null丛晌,這個(gè)表達(dá)式的類型是 Int? 。
  • 弄诲?:Elvis 操作符

對于上面的列子當(dāng)a不為空時(shí)返回正常的值,但當(dāng)a為空時(shí)返回null娇唯,顯然返回null不能滿足我們開發(fā)要求齐遵,所以可以使用?:操作符

val l = a?.length ?: -1//當(dāng)a為空時(shí)返回-1
  • !!操作符

如果希望直接拋出NPE異常可以用!!操作符

val n1 = a!!.length
  • ==號與===號

==判斷值是否相等塔插,===判斷值及引用是否完全相等梗摇。

    val c: Int = 128
    val a1:Int? = c
    val a2:Int? = c
    println(a1 == a2)  //true
    print(a1 === a2)   //true
  • ..區(qū)間以及 in 和 !in 操作符

        if (i in 1..10) { // 等價(jià)于 i >= 1 && i <= 10  或者  i in [1, 10]
            println(i)
        }
        //使用until函數(shù),創(chuàng)建一個(gè)不包括其結(jié)束元素的區(qū)間
        for (i in 1 until 10) {   // i>=1 && i < 10 或者 i in [1, 10) 排除了 10
            println(i)
        }
        if (i !in 1..10) { // i < 1 || i > 10
            println(i)
        }
  • downTo() 函數(shù)

如果你想倒序迭代數(shù)字呢?也很簡單想许。你可以使用標(biāo)準(zhǔn)庫中定義的 downTo() 函數(shù)

for (i in 5 downTo 1) 
            print(i) // 輸出“54321”
  • step()步長

在上面的例子中我們也可以指定步長

for (i in 1..5 step 2) 
            print(i) // 輸出“135”

for (i in 5 downTo 1 step 2)
            print(i) // 輸出“531”
  • _(下劃線)

data class Book(var id: Int, var name: String)

上面的示例中伶授,Book聲明了 id断序,name兩個(gè)變量。解構(gòu)時(shí)如果只需要id這一個(gè)變量時(shí)糜烹,可以這么做:

val book = Book(1, "英語")
val (id, _) = book
  • ::符號

得到類的Class對象

startActivity(Intent(this@KotlinActivity, MainActivity::class.java))
  • @符號

1.限定this的類型

class User {
    inner class State{
        fun getUser(): User{
            //返回User
            return this@User
        }
        fun getState(): State{
            //返回State
            return this@State
        }
    }
}

2.跳出雙層for循環(huán)

loop@ for (itemA in arraysA) {
     var i : Int = 0
      for (itemB in arraysB) {
         i++
         if (itemB > 2) {
             break@loop
         }
         println("itemB:$itemB")
     }
}

3.命名函數(shù)自定義標(biāo)簽

fun fun_run(){
    run {
        println("lambda")
    }
    var i: Int = run {
        return@run 1
    }
    println("$i")
    //匿名函數(shù)可以通過自定義標(biāo)簽進(jìn)行跳轉(zhuǎn)和返回
    i = run (outer@{
        return@outer 2
    })
    println(i)
}
  • $操作符

字符串可以包含模板表達(dá)式违诗,及一小段代碼,會求值并把結(jié)果包含到字符串中疮蹦。模板字符串以美元符號$開頭诸迟,由一個(gè)簡單的名字構(gòu)成:

val key = 5
val str1 = "the key is $key"http://輸出:the key is 5
        
val s = "abc"
val str2 = "$s.length is ${s.length}"http://輸出:abc.length is 3

var args = arrayOf("Cat", "Dog", "Rabbit")
print("Hello ${args[0]}")//輸出:Hello Cat
  • 三個(gè)雙引號

    三引號的形式用來輸入多行文本,也就是說在三引號之間輸入的內(nèi)容將被原樣保留愕乎,之中的單號和雙引號不用轉(zhuǎn)義阵苇,其中的不可見字符比如/n和/t都會被保留。
val str = """ 
    one
    two
        """
//等價(jià)于          
val str = "one\ntwo"
val str =  "one" +"\n"+"two"
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末感论,一起剝皮案震驚了整個(gè)濱河市绅项,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌笛粘,老刑警劉巖趁怔,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異薪前,居然都是意外死亡润努,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進(jìn)店門示括,熙熙樓的掌柜王于貴愁眉苦臉地迎上來铺浇,“玉大人,你說我怎么就攤上這事垛膝△⒙拢” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵吼拥,是天一觀的道長倚聚。 經(jīng)常有香客問我,道長凿可,這世上最難降的妖魔是什么惑折? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮枯跑,結(jié)果婚禮上惨驶,老公的妹妹穿的比我還像新娘。我一直安慰自己敛助,他們只是感情好粗卜,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著纳击,像睡著了一般续扔。 火紅的嫁衣襯著肌膚如雪攻臀。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天测砂,我揣著相機(jī)與錄音茵烈,去河邊找鬼。 笑死砌些,一個(gè)胖子當(dāng)著我的面吹牛呜投,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播存璃,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼仑荐,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了纵东?” 一聲冷哼從身側(cè)響起粘招,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎偎球,沒想到半個(gè)月后洒扎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡衰絮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年袍冷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片猫牡。...
    茶點(diǎn)故事閱讀 38,566評論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡胡诗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出淌友,到底是詐尸還是另有隱情煌恢,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布震庭,位于F島的核電站瑰抵,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏器联。R本人自食惡果不足惜谍憔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望主籍。 院中可真熱鬧,春花似錦逛球、人聲如沸千元。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽幸海。三九已至祟身,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間物独,已是汗流浹背袜硫。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留挡篓,地道東北人婉陷。 一個(gè)月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像官研,于是被迫代替她去往敵國和親秽澳。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評論 2 348