科技資訊
2017年6月,最新一期的TIOBE編程語(yǔ)言排行已發(fā)布,對(duì)比去年同期,排名前5名的語(yǔ)言的排序沒有發(fā)生變化,還是Java,C,C++,Python,C#。但值得注意的是,Kotlin排名首次進(jìn)入前50名(43)。
在 Kotlin 中,所有東西都是對(duì)象,在這個(gè)意義上講所以我們可以在任何變量上調(diào)用成員函數(shù)和屬性。有些類型是內(nèi)置的,因?yàn)樗麄兊膶?shí)現(xiàn)是優(yōu)化過(guò)的。但是用戶看起來(lái)他們就像普通的類。本節(jié)我們會(huì)描述大多數(shù)這些類型:數(shù)字、字符、布爾和數(shù)組。
Number類型
和Java一樣,Kotlin提供了一些內(nèi)置類型作為它的數(shù)值類型。
| Type | Bit width |
|---|---|
| Double | 64 |
| Float | 32 |
| Long | 64 |
| Int | 32 |
| Short | 16 |
| Byte | 8 |
小知識(shí)
數(shù)值型數(shù)據(jù)是表示數(shù)量可以進(jìn)行數(shù)值運(yùn)算的數(shù)據(jù)類型。
Characters類型
Characters代表的就是Char類型,不能直接的當(dāng)做數(shù)字進(jìn)行運(yùn)算。做運(yùn)算之前,我們需要將其轉(zhuǎn)換為數(shù)值類型。
fun check(c: Char) {
if (c == 1) { // ERROR: incompatible types
// ...
}
}
fun operate(c: Char) {
c.toInt() - '0'.toInt() // SUCCESS: Explicit conversions to numbers
}
特殊的轉(zhuǎn)義字符使用反斜杠:\t, \b, \n, \r, \’, \”, \ 和 $。
Boolean類型
字符是由單引號(hào)包裹的:'1',特殊的字符通過(guò)反斜杠\轉(zhuǎn)義,下面的字符序列支持轉(zhuǎn)義:\t,\b,\n,\r,',",\和$。編碼任何其他字符,使用 Unicode 轉(zhuǎn)義語(yǔ)法:\uFF00。
Array類型
數(shù)組在 Kotlin 中由 Array 類表示,有 get 和 set 方法,和 size 屬性,以及一些常用的函數(shù)。
class Array<T> private constructor() {
val size: Int
operator fun get(index: Int): T
operator fun set(index: Int, value: T): Unit
operator fun iterator(): Iterator<T>
// ...
}
如何創(chuàng)建數(shù)組?
- 使用arrayOf(1, 2, 3) 創(chuàng)建了一個(gè)[1, 2, 3] 這樣的數(shù)組。
- 使用庫(kù)函數(shù) arrayOfNulls() 創(chuàng)建一個(gè)指定大小的空Array。
- 另一種方式就是使用工廠函數(shù),接受一個(gè)數(shù)組大小參數(shù)以及一個(gè)可以根據(jù)給定索引創(chuàng)建初始值的函數(shù)。
String類型
字符串的每個(gè)元素都是字符,可以使用索引訪問:str[i],可以使用for循環(huán)進(jìn)行遍歷。字符串類型有以下4種表達(dá)方式。
1.普通字符串
val s = "Hello, world!"
2.轉(zhuǎn)義字符串
val s = "Hello, world!\n"
3.原生字符串
val text = """
for (c in "foo")
print(c)
"""
4.字符串模版
如果需要將某個(gè)變量的值作為字符串的一部分,只需在該變量前加上$放入字符串即可。
val i = 10
val s = "i = $i" // evaluates to "i = 10"
也可以加上中括號(hào)
val s = "abc"
val str = "$s.length is ${s.length}" // evaluates to "abc.length is 3"