學(xué)習(xí)Kotlin中出現(xiàn)的常用操作符

學(xué)習(xí)koltin尼酿,弄懂它的操作符的意思很重要拾积,下面就記錄一下Kotlin常用操作符:


1殉挽、類型判斷符 is

檢查某個(gè)實(shí)例是否是某個(gè)類型,如果判斷出屬于某個(gè)類型拓巧,那么判斷后的分支中可以直接當(dāng)做該類型使用斯碌,無需顯示轉(zhuǎn)換

fun getStringLength(obj: Any): Int? {

? ? ? ? //obj在右邊自動(dòng)動(dòng)轉(zhuǎn)換成"String"類型? ? ??

????????? if (obj is String && obj.length > 0)

? ? ? ? ? ????? return obj.length? ? ? ??

????return null? ??

}


2、肛度?操作符

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

//在變量類型后面加上問號(hào)傻唾,代表該變量是可空變量

var name: String? = "a"

/**

* 判斷obj是不是String類型,返回它的長(zhǎng)度

*/

fun getResult(obj: Any): Int? { //Int后面接?表示可以返回null

????var result = 0

????if (obj is String){

????????result = obj.length

? ? ?}

????return result

}


3、Elvis操作符 ?冠骄?:

在Koltin中伪煤,Elvis操作符特定是跟 null 比較,主要用來作null安全性檢查凛辣。

舉例:y = x?:0

等價(jià)于:

val y = if ?(x !=== null) ?x ?else ?0?

就是說如果x不等于null抱既,則 y = x,否則 y = 0;

舉例:val a = b?.length ?: -1

就是說如果 ?: 左側(cè)表達(dá)式非空扁誓,elvis操作符就返回其左側(cè)表達(dá)式防泵,否則返回右側(cè)表達(dá)式(-1)。注意蝗敢,當(dāng)且僅當(dāng)左側(cè)為空時(shí)捷泞,才會(huì)對(duì)右側(cè)表達(dá)式求值。

koltlin中沒有這樣的三元運(yùn)算符 true 前普?1:0肚邢,取而代之的事if (true) 1 else 0。


4拭卿、 非空斷言 !! 和安全調(diào)用 骡湖?. ?和 非空斷言調(diào)用 !! .

!! 是判斷他是一個(gè)非空的值

var str:String?="abc"

str = null

str.length ? //報(bào)錯(cuò),因?yàn)閟tr可能為null,所以需要安全調(diào)用 峻厚?. ?或者 非空斷言調(diào)用?!!?.

str?.length ? //返回null

str!!.length? //就會(huì)得到nullpointer空指針異常


5响蕴、..符號(hào) 以及 in 和 !in 操作符

..代表從a到b,包括a和b,這是一個(gè)閉區(qū)間運(yùn)算符惠桃,in和!in就是在不在這個(gè)區(qū)間里面

例如:i ?in 1..10 // 等價(jià)于 1 <= i && i <= 10


6浦夷、多行輸入符 """

三引號(hào)的形式用來輸入多行文本,也就是說在三引號(hào)之間輸入的內(nèi)容將被原樣保留辜王,之中的單號(hào)和雙引號(hào)不用轉(zhuǎn)義劈狐,

其中的不可見字符比如/n和/t都會(huì)被保留

val str = """

? ? ? ? ? ? ?one

? ? ? ? ? ? ?two

? ? ? ? ? ? ? """??

//等價(jià)于? ? ? ? ?

?val str = "one\ntwo"? ? ?

?val str =? "one" +"\n"+"two"


7、::符號(hào)

得到類的Class對(duì)象

startActivity(Intent(this, AboutAppActivity::class.java)


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末呐馆,一起剝皮案震驚了整個(gè)濱河市肥缔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌汹来,老刑警劉巖续膳,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異收班,居然都是意外死亡坟岔,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門摔桦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來社付,“玉大人,你說我怎么就攤上這事∈菽拢” “怎么了纪隙?”我有些...
    開封第一講書人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)扛或。 經(jīng)常有香客問我,道長(zhǎng)碘饼,這世上最難降的妖魔是什么熙兔? 我笑而不...
    開封第一講書人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮艾恼,結(jié)果婚禮上住涉,老公的妹妹穿的比我還像新娘。我一直安慰自己钠绍,他們只是感情好舆声,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著柳爽,像睡著了一般媳握。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上磷脯,一...
    開封第一講書人閱讀 51,258評(píng)論 1 300
  • 那天蛾找,我揣著相機(jī)與錄音,去河邊找鬼赵誓。 笑死打毛,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的俩功。 我是一名探鬼主播幻枉,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼诡蜓!你這毒婦竟也來了熬甫?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤万牺,失蹤者是張志新(化名)和其女友劉穎罗珍,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體脚粟,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡覆旱,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了核无。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片扣唱。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出噪沙,到底是詐尸還是另有隱情炼彪,我是刑警寧澤,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布正歼,位于F島的核電站辐马,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏局义。R本人自食惡果不足惜喜爷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望萄唇。 院中可真熱鬧檩帐,春花似錦、人聲如沸另萤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽四敞。三九已至泛源,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間目养,已是汗流浹背俩由。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留癌蚁,地道東北人幻梯。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像努释,于是被迫代替她去往敵國和親碘梢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

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

  • 本文是在學(xué)習(xí)和使用kotlin時(shí)的一些總結(jié)與體會(huì)伐蒂,一些代碼示例來自于網(wǎng)絡(luò)或Kotlin官方文檔煞躬,持續(xù)更新... 對(duì)...
    竹塵居士閱讀 3,281評(píng)論 0 8
  • 前言 最先接觸編程的知識(shí)是在大學(xué)里面恩沛,大學(xué)里面學(xué)了一些基礎(chǔ)的知識(shí),c語言缕减,java語言雷客,單片機(jī)的匯編語言等;大學(xué)畢...
    oceanfive閱讀 3,072評(píng)論 0 7
  • Lua 5.1 參考手冊(cè) by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 13,791評(píng)論 0 38
  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line)桥狡,也就是一...
    悟名先生閱讀 4,148評(píng)論 0 13
  • 八點(diǎn)多的時(shí)候搅裙,我和媽媽正在沙發(fā)上聊天皱卓,聽到了你哭聲。沒想到你才睡半小時(shí)就醒了部逮。那時(shí)候喂你牛奶的時(shí)候娜汁,你困得都沒喝完...
    楊茗辭閱讀 176評(píng)論 2 7