安卓學(xué)習(xí)筆記------kotlin基本數(shù)據(jù)類型

Kotlin 的基本數(shù)值類型包括 Byte、Short、Int、Long、Float、Double 等。不同于Java的是,字符不屬于數(shù)值類型,是一個獨立的數(shù)據(jù)類型。

比較兩個數(shù)字

Kotlin 中沒有基礎(chǔ)數(shù)據(jù)類型,只有封裝的數(shù)字類型,你每定義的一個變量,其實 Kotlin 幫你封裝了一個對象,這樣可以保證不會出現(xiàn)空指針。數(shù)字類型也一樣,所有在比較兩個數(shù)字的時候,就有比較數(shù)據(jù)大小和比較兩個對象是否相同的區(qū)別了。
在 Kotlin 中,三個等號 === 表示比較對象地址,兩個 == 表示比較兩個值大小。

fun main(args:Array<String>){
  val a:Int = 10000
  print(a===a)//返回true,值相等,對象地址相等
  //經(jīng)過了裝箱,創(chuàng)建了兩個不同的對象
  val boxedA :Int?=a
  val anotherBoxedA:Int?=a

  println(boxedA === anotherBoxedA) //  false,值相等,對象地址不一樣
    println(boxedA == anotherBoxedA) // true,值相等
}
類型轉(zhuǎn)化

由于不同的表示方式,較小類型并不是較大類型的子類型,較小的類型不能隱式轉(zhuǎn)換為較大的類型。 這意味著在不進行顯式轉(zhuǎn)換的情況下我們不能把 Byte 型值賦給一個 Int 變量。
錯誤例子

val b: Byte = 1  
val i: Int = b 

正確例子

val b: Byte = 1 
val i: Int = b.toInt() 

每種數(shù)據(jù)類型都有下面的這些方法,可以轉(zhuǎn)化為其它的類型:

toByte(): Byte
toShort(): Short
toInt(): Int
toLong(): Long
toFloat(): Float
toDouble(): Double
toChar(): Char
數(shù)組

數(shù)組用類 Array 實現(xiàn),并且還有一個 size 屬性及 get 和 set 方法,由于使用 [] 重載了 get 和 set 方法,所以可以通過下標(biāo)很方便的獲取或者設(shè)置數(shù)組對應(yīng)位置的值。
數(shù)組的創(chuàng)建兩種方式:一種是使用函數(shù)arrayOf();另外一種是使用工廠函數(shù)。

fun main(args:Array<String>){
  val a=arrayof(1,2,3)
  val b=Array(3,{i-> (i * 2) })

     //讀取數(shù)組內(nèi)容
    println(a[0])    // 輸出結(jié)果:1
    println(b[1])    // 輸出結(jié)果:2
}
字符串

和 Java 一樣,String 是可不變的。方括號 [] 語法可以很方便的獲取字符串中的某個字符,也可以通過 for 循環(huán)來遍歷:

for(c in str){
  print(c)
}

kotlin支持三個引號“”“擴起來的字符串,支持多行字符串

fun main(args:Array<String>){
  val text="""
      多行字符串
      多行字符串
  """
print(text)
}

String可以通過trimMargin()方法來刪除多余的空白

fun main(args:Array<String>){
  val text="""
      多行字符串
      多行字符串
  """.trimMargin()
print(text)
}
字符串模板

字符串可以包含模板表達(dá)式 ,即一些小段代碼,會求值并把結(jié)果合并到字符串中。 模板表達(dá)式以美元符($)開頭,由一個簡單的名字構(gòu)成:

fun main(args:Array<String>){
  val i=10
  val s="i=$i"http://求值結(jié)果為i=10
  print(s)
}

或者用花括號擴起來的任意表達(dá)式

fun main(args:Array<String>){
  fun main(args: Array<String>) {
    val s = "runoob"
    val str = "$s.length is ${s.length}" // 求值結(jié)果為   "runoob.length is 6"
    println(str)
}
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容