關(guān)于Kotlin
Android開發(fā)目前火到不行的語言,17年IO大會推出Android官方開發(fā)語言陈惰,相信每個人都或多或少有了解,關(guān)于Kotlin的起源以及作用毕籽,不用再闡述抬闯,已經(jīng)有有心人整理好了
- Kotlin官網(wǎng)中Android部分
- Kotlin中文網(wǎng)站
- Android遇上Kotlin | 第一部分第一課 : Kotlin若只如初見
- Kotlin 資源大全 - 學(xué) Kotlin 看這一篇教程就夠了
有了這幾篇文章,其實已經(jīng)能對Kotlin有個初步了解关筒,所以溶握,我們就直接進(jìn)入Kotlin的學(xué)習(xí)之路,而不是浪費時間去了解各種看花眼的概念蒸播,在學(xué)習(xí)中去了解睡榆,邊學(xué)變敲,效果最佳
學(xué)習(xí)Kotlin
-
配置Kotlin開發(fā)環(huán)境
學(xué)習(xí)之前袍榆,肯定需要碼農(nóng)干活的基本工具—IDE胀屿,Kotlin官方推出的開發(fā)工具,就是IntelliJ IDEA包雀,Androidstudio不正是基于IntelliJ IDEA開發(fā)的么宿崭,So?
Androidstudio已經(jīng)支持了Kotlin才写,簡單了
開始配置:Androidstudio--File--Settings--Plugins--Browse Repositories葡兑,搜索Kotlin奴愉,安裝,成功之后重啟AndroidStudio
查看Kotlin是否安裝成功铁孵,在main--java包下锭硼,右鍵New,會出現(xiàn)Kotlin選項蜕劝,如下圖
先創(chuàng)建一個Kotlin類型的Class檀头,例如New--Kotlin File/Class,新建一個Kotlin類岖沛,命名testKotlin暑始,可以看到后綴為.kt -
學(xué)習(xí)基礎(chǔ)
Kotlin 提供了如下的內(nèi)置類型來表示數(shù)字
Type | Bit width |
---|---|
Double | 64 |
Float | 32 |
Long | 64 |
Int | 32 |
Short | 16 |
Byte | 8 |
而字符型在Kotlin中是一個單獨的數(shù)據(jù)類型
- 聲明屬性
可以使用var或者val來聲明屬性
val:可讀不可寫,也就是只有g(shù)et()婴削,沒有set()
var: 可變廊镜,既有set(),也有g(shù)et()
聲明方式和Java不同唉俗,默認(rèn)寫法:數(shù)據(jù)類型在變量名后面嗤朴,中間加上:
val a1: Int = 1 // 立即賦值 ,默認(rèn)寫法
val b1 = 2 // 自動推斷出 Int類型 虫溜,簡寫
var time = 5
var name :String = "喜洋洋" //Kotlin默認(rèn)不需要雹姊;加上也不會報錯```
- 顯式轉(zhuǎn)換
由于不同的表示方式,較小類型并不是較大類型的子類型衡楞。
例如:
val b1: Byte = 5
val b2: Int = b1 //會報錯誤```
因此較小的類型不能隱式轉(zhuǎn)換為較大的類型吱雏。 這意味著在不進(jìn)行顯式轉(zhuǎn)換的情況下我們不能把 Byte 型值賦給一個 Int 變量。
只有通過顯式轉(zhuǎn)換才行:
val b1: Byte = 5
val b2: Int = b1.toInt() //正確```
每個數(shù)字類型支持如下的轉(zhuǎn)換:
toByte(): Byte
toShort(): Short
toInt(): Int
toLong(): Long
toFloat(): Float
toDouble(): Double
toChar(): Char```
如果沒有顯式轉(zhuǎn)換瘾境,可以通過算術(shù)運算做適當(dāng)轉(zhuǎn)換歧杏,例如:
val b1: Byte = 5
val b2: Int = b1.toInt()
val b3 = 100L + b2 // Long + Int => Long```
- 字符
字符用 Char 類型表示。不能直接當(dāng)作數(shù)字使用
fun check(c1: Char) {
if (c1 == 1) { // 錯誤:類型不兼容
// ……
}
}字符字面值用單引號括起來: '1'迷守。 特殊字符可以用反斜杠轉(zhuǎn)義犬绒。 支持這幾個轉(zhuǎn)義序列:
\t、
\b盒犹、
\n懂更、
\r、
' 急膀、
" 沮协、
\\ 和
\$```。
例如卓嫂,把字符串轉(zhuǎn)為Int數(shù)字:
val c1 :Char = '4'
val c2 = c1.toInt()```
- 布爾
布爾用 ``Boolean`` 類型表示慷暂,它有兩個值:true 和 false。
內(nèi)置的布爾運算有:
|| – 短路邏輯或
&& – 短路邏輯與
! - 邏輯非```
- 數(shù)組
數(shù)組在 Kotlin 中使用Array
類來表示,它定義了 get 和 set 函數(shù)行瑞;
1.我們可以使用庫函數(shù) arrayOf() 來創(chuàng)建一個數(shù)組并傳遞元素值給它奸腺,例如:
val d1 = arrayOf("a", "b", "c") //創(chuàng)建一個長度為3的數(shù)組```
2.或者使用庫函數(shù) arrayOfNulls() 可以用于創(chuàng)建一個指定大小、元素都為空的數(shù)組:
val d2 = arrayOfNulls<Int>(6)```
3.用接受數(shù)組大小和一個函數(shù)參數(shù)的工廠函數(shù)血久,用作參數(shù)的函數(shù)能夠返回給定索引的每個元素初始值:
// 創(chuàng)建一個 Array<String> 初始化為 ["0", "2","4", "6", "8"]
val d3 = Array(5, { i -> (i * 2).toString() })```
**注意**: 與 Java 不同的是突照,Kotlin 中數(shù)組是不型變的(invariant)。這意味著 Kotlin 不讓我們把 Array<String> 賦值給 Array<Any>氧吐,以防止可能的運行時失敗.
Kotlin 也有無裝箱開銷的專門的類來表示原生類型數(shù)組: ```ByteArray```讹蘑、 ```ShortArray```、```IntArray```等等筑舅。這些類和 Array 并沒有繼承關(guān)系座慰,但是它們有同樣的方法屬性集。它們也都有相應(yīng)的工廠方法:
val array1 = intArrayOf(5, 6, 7)```
- 字符串
字符串用 String 類型表示翠拣。字符串是不可變的版仔。 字符串的元素——字符可以使用索引運算符訪問: s[i]。 可以用 for 循環(huán)迭代字符串:
for (e in str) {
println(e)
}```
Kotlin 有兩種類型的字符串字面值: 轉(zhuǎn)義字符串可以有轉(zhuǎn)義字符误墓,以及原生字符串可以包含換行和任意文本蛮粮。轉(zhuǎn)義字符串很像 Java 字符串:
val e1 = "Hello, world!\n"```
原生字符串 使用三個引號(""")分界符括起來,內(nèi)部沒有轉(zhuǎn)義并且可以包含換行和任何其他字符:
val e2 = """for (c in "foo")
print(c)"""```
- 字符串模板
1.字符串可以包含模板表達(dá)式 优烧,即一些小段代碼蝉揍,會求值并把結(jié)果合并到字符串中。 模板表達(dá)式以美元符($)開頭畦娄,由一個簡單的名字構(gòu)成:
val f1 = 5
val f2 = "f1 = $f1" 求值結(jié)果為 "f1 = 5"```
2.或者用花括號擴起來的任意表達(dá)式:
val f3 = "hello"
val f4 = "$f3.length = ${f3.length}" //求值結(jié)果為 "f3.length = 5"```
3.原生字符串和轉(zhuǎn)義字符串內(nèi)部都支持模板。 如果你需要在原生字符串中表示字面值 $ 字符(它不支持反斜杠轉(zhuǎn)義)弊仪,你可以用下列語法:
val price = """
${'$'}9.99
"""```
后記
Kotlin基礎(chǔ)熙卡,學(xué)習(xí)了
數(shù)據(jù)類型、聲明屬性励饵、顯式轉(zhuǎn)換驳癌、字符、布爾役听、字符串颓鲜、字符串模板。
熟悉基礎(chǔ)典予,繼續(xù)前行甜滨。