Kotlin 基础 - 数据类型
一、Boolean 類型
Boolean 值有兩個值,分別為 true 或 false。多數(shù)情況下,Kotlin 中的 Boolean 相當(dāng)于 Java 中的基本類型 boolean,只有在必要的情況下才會裝箱成為 Java 中的裝箱類型 Boolean。這一切都是交由編譯器來完成,我們無需關(guān)心。
var isFirst: Boolean = true var isSecond: Boolean = false二、Number 類型
基本類型的裝箱與拆箱
Kotlin 不再區(qū)分裝箱與非裝箱類型,在需要的時候編譯器會幫我們自動的選擇是使用基本類型還是裝箱類型。
三、Chat 類型
Chat 類型表示一個字符,一個字符可以是一個字,或者一個符號等等。
字符占兩個字節(jié),表示一個 16 位的 Unicode 字符。
字符使用單引號 '' 引起來,例如 '中','A','\n'。
四、數(shù)值類型的顯式轉(zhuǎn)換
在 Java 里面,將一個 int 值賦給 long 值,是可以允許的,因為 Int 的范圍比 long 要小,所以 long 可以兼容 int。但是,在 Kotlin 中這樣的隱式轉(zhuǎn)換是不被支持的
每個數(shù)值類型都支持下面的轉(zhuǎn)換
- toLong:Long
- toInt:Int
- toShort:Short
- toFloat:Float
- toDouble:Double
- toByte:BytetoChar: Char
- toString: String
五、字符串類型
字符串本質(zhì)上可以說是"一串" Char,字符串使用雙引號 "" 引起來5.1 字符串的比較
熟悉 Java 的同學(xué)對以上結(jié)果是不是就困惑了,怎么 == 打印出來了 true,這里我們可以看看== 的源碼就可以解開疑惑了。
public open operator fun equals(other: Any?): BooleanKotlin 的 == 就相當(dāng)于 Java 的 equeals,表示比較內(nèi)容。
Kotlin 的 === 就相當(dāng)于 Java 的 ==,表示比較對象是否相同。
5.2 字符串模板
在 Kotlin 中,字符串可以包含模板表達(dá)式,模板表達(dá)式由 $ 開頭,如果需要進(jìn)行表達(dá)式運(yùn)算,可以寫在 {} 里面
var a: Int = 1 var b: Int = 2// Java println("" + a + " + " + b + " = " + (a + b))// 字符串模板 println("$a + $b = ${a + b}")// print: 1 + 2 = 3// 原始字符串 var rawString = """ab${a + b} """六、數(shù)組
Kotlin 中的數(shù)組由 Array 類表示,表示以一系列的對象,可以使用函數(shù) arrayOf 來創(chuàng)建數(shù)組,示例如下
可以看到,我們使用 val 來修飾數(shù)組,在 Kotlin 中,數(shù)組是不可變的。上面數(shù)組里我們放的都是對象,那么基本類型的數(shù)組呢?Kotlin 中為了防止裝箱拆箱的操作,為每個基本類型都專門定制了相應(yīng)的數(shù)組類型,從而避免過度裝箱的消耗。例如:IntArray,CharArray 等等
val arrayOfInt: IntArray = intArrayOf(1, 2, 3) val arrayOfChar: CharArray = charArrayOf('中', '國')七、區(qū)間
區(qū)間是一個數(shù)學(xué)上的概念,表示范圍。Kotlin 中區(qū)間是 ClosedRange 接口的子類,一般比較常用的是 IntRange。
八、空類型安全
fun getName(): String{return null }上面的代碼在編譯器里是會報錯的,普通情況下,Kotlin 中是不允許返回 null 類型的,這也就表明,我們在取這個值的時候,無需擔(dān)心,直接使用即可。那我們就是想返回 null 呢? 在返回值后面加個 ? 即可。
fun getName(): String?{return null }但是,返回了空類型之后,要使用這個函數(shù)就不是這么簡單了,如果你并不確定此函數(shù)返回的是否為空,那么你需要在函數(shù)后面加上一個?,如果你確定的知道此函數(shù)不會返回空,那么你可以在函數(shù)后面加上 !! 表示我明確知道返回值不為空,可放心使用。
// 此行代碼會報錯 var nameLength = getName().length// 不確定是否為空 var nameLength = getName()?.length// 確定不為空 var nameLength = getName()!!.length// getName 不為空則返回值,為空則不再執(zhí)行后面的邏輯 var nameLength = getName() ?: return轉(zhuǎn)載于:https://blog.51cto.com/13983283/2363036
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的Kotlin 基础 - 数据类型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Rsa2加密报错java.securit
- 下一篇: 网站计数器 web映射