Kotlin學(xué)習(xí)筆記(一)—— Kotlin基礎(chǔ)

數(shù)據(jù)類型

基本類型和Java基本保持一致赋除,只是Kotlin中是大寫首字母

Char
Byte 
Short 
Int 
Long 
Float 
Double 
Boolean

Kotlin不支持自動擴(kuò)展數(shù)字范圍韭脊,Java中int類型可自動擴(kuò)展成long什乙,但是Kotlin中必須要顯式的指定類型淋硝。

val intValue = 10
val longValue = intValue.toLong()

其他類似的還有toDouble toShort toByte等方法

上面第一行代碼中沒有顯示的指定數(shù)據(jù)類型制恍,Kotlin可以根據(jù)指定的值推斷出類型父能,由此可知上面的intValue的類型是Int。

元組

元組只有二元(Pair)和三元(Triple)净神,因此也只能存放2個值和3個值

val pair = Pair("one", "two")
print(pair.first + " - " + pair.second)

val triple = Triple("one", "two", "third")
print(triple.first + " - " + triple.second + " - " + triple.third)
可空類型

Java中的最常見的一個異常就是NullPointerException何吝,Kotlin的可空類型完美的避免了每次繁瑣的判空處理【槲ǎ可空類型表示它的值可以聲明為null爱榕,用類型后面加一個?表示,如:

val string: String? = null // ①
val string2: String = null // ②

上面①的聲明是正確的坡慌,但是②的聲明是錯誤的黔酥,IDE會提示 Null can not be a value of a non-null type String,說明沒有帶?的變量是不能聲明為null的洪橘。

聲明3個變量分別是 s1,s2,s3跪者,將3個變量轉(zhuǎn)換成大寫

val s1: String = "Kotlin"
val s2: String? = null
val s3: String

println(s1.toUpperCase())
println(s2?.toUpperCase())
println(s3.toUpperCase()) // IDE報錯Variable 's3' must be initialized

KOTLIN
null

聲明s1并賦值為小寫字符串kotlin,聲明s2但是初始化為null熄求,聲明s3不初始化渣玲。

s1可將 kotlin 轉(zhuǎn)成 KOTLIN;s2初始化為null弟晚,直接輸出了null忘衍,而沒有像Java那樣報NPE異常;s3聲明不報錯卿城,但是s3.toUpperCase()的時候IDE編譯不通過淑履。這說明:

  • 聲明可以不立馬初始化
  • String?是空類型安全的,即使是初始化為null藻雪,依舊不報錯秘噪,而是返回null
  • 對于未初始化的變量不能使用
相等操作符

== 和 ===

判斷引用是否相等用 ===

判斷值是否相等用 ==

val s1 = "Kotlin"
val s2 = "Kotlin"
println(s1 == s2)
println(s1 === s2)

>> true
>> true

因為s1和s2的字符串在常量池中指向的是同一個引用,所以引用和值都返回true

val f1 = File("sdcard/")
val f2 = File("sdcard/")
println(f1 == f2)
println(f1 === f2)

>> true
>> false

f1和f2雖然是相同的路徑勉耀,但是是不同的對象指煎,所以指向了不同的引用,因此 === 返回false便斥,路徑值相同至壤,因此 == 返回true。

區(qū)間

區(qū)間是一個有開始值和結(jié)束值的范圍枢纠。創(chuàng)建一個區(qū)間用 .. 操作符

val range = 1..100

range的范圍等同于 1 <= range <= 100

遍歷區(qū)間
for (num in range) {
    println(num)
}

>> 1
>> 2
...
>> 100
區(qū)間反轉(zhuǎn)
val reversedRange = range.reversed()
for (num in reversedRange) {
    println(num)
}

>> 100
>> 99
...
>> 1
步長

默認(rèn)的步長是1像街,也可以設(shè)置步長,用step(Int)

val range = 1..100
for (num in range.step(3)) {
    println(num)
}

>> 1
>> 4
...
>> 100
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市镰绎,隨后出現(xiàn)的幾起案子脓斩,更是在濱河造成了極大的恐慌,老刑警劉巖畴栖,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件随静,死亡現(xiàn)場離奇詭異,居然都是意外死亡吗讶,警方通過查閱死者的電腦和手機(jī)燎猛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來照皆,“玉大人重绷,你說我怎么就攤上這事∧せ伲” “怎么了论寨?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長爽茴。 經(jīng)常有香客問我葬凳,道長,這世上最難降的妖魔是什么室奏? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任火焰,我火速辦了婚禮,結(jié)果婚禮上胧沫,老公的妹妹穿的比我還像新娘昌简。我一直安慰自己,他們只是感情好绒怨,可當(dāng)我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布纯赎。 她就那樣靜靜地躺著,像睡著了一般南蹂。 火紅的嫁衣襯著肌膚如雪犬金。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天六剥,我揣著相機(jī)與錄音晚顷,去河邊找鬼。 笑死疗疟,一個胖子當(dāng)著我的面吹牛该默,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播策彤,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼栓袖,長吁一口氣:“原來是場噩夢啊……” “哼匣摘!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起裹刮,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤音榜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后必指,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡恕洲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年塔橡,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片霜第。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡葛家,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出泌类,到底是詐尸還是另有隱情癞谒,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布刃榨,位于F島的核電站弹砚,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏枢希。R本人自食惡果不足惜桌吃,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望苞轿。 院中可真熱鬧茅诱,春花似錦、人聲如沸搬卒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽契邀。三九已至摆寄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間坯门,已是汗流浹背椭迎。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留田盈,地道東北人畜号。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像允瞧,于是被迫代替她去往敵國和親简软。 傳聞我的和親對象是個殘疾皇子蛮拔,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,914評論 2 355

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