最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Kotlin教程之基本數(shù)據(jù)類型

 更新時間:2017年05月23日 10:07:38   作者:Losileeya  
這篇文章主要介紹了Kotlin教程之基本數(shù)據(jù)類型的學(xué)習(xí)的相關(guān)資料,需要的朋友可以參考下

Kotlin教程之基本數(shù)據(jù)類型的學(xué)習(xí)

基本類型

我們知道java的基本類型分為基本數(shù)據(jù)類型:

  • int 普通整型
  • float 浮點型
  • char 字符型
  • short 短整型
  • byte 字節(jié)型
  • long 長整型
  • double 雙精度
  • boolean 布爾型

和引用數(shù)據(jù)類型:

  • class Type 類類型
  • interface Type 接口類型
  • array Type 數(shù)組類型
  • null Type 空類型

在 Kotlin 中,所有變量的成員方法和屬性都是一個對象。一些類型是內(nèi)建的,因為它們的實現(xiàn)是優(yōu)化過的,但對用戶來說它們就像普通的類一樣。在這篇中,我們將會講到大多數(shù)的類型:數(shù)值,字符,布爾,以及數(shù)組。

Kotlin 的 數(shù)值類型

Kotlin 處理數(shù)值的方法和 java 很相似。比如,不存在隱式轉(zhuǎn)換數(shù)值的寬度,并且在字面上有一些小小的不同。

Kotlin 提供了如下內(nèi)建數(shù)值類型(和 java 很相似):

不知道你注意了沒有:字符在 Kotlin 中不是數(shù)值類型

Kotlin 的 數(shù)值類型 的使用

數(shù)值類型的聲明

1 .變量定義
var <標(biāo)識符> : <類型> = <初始化值>
常量定義
val <標(biāo)識符> : <類型> = <初始化值>

可變變量,使用var修飾;不可變的變量(類似于Java中的final),使用val修飾。而在變量類型后使用了問號,表示這個變量是空指針安全的

2 .類型推導(dǎo)

你可能在其他語言中看到過類型推導(dǎo)。在 Java 里,我們需要自己聲明類型,變量名,以及數(shù)值。在 Kotlin 里,順序有些不一樣,你先聲明變量名,然后是類型,然后是分配值。很多情況下,你不需要聲明類型。一個字符串字面量足以指明這是個字符串類型。字符,整形,長整形,單浮點數(shù),雙浮點數(shù),布爾值都是可以無需顯性聲明類型的。

var string: String = ""
var string = ""
var char = ' '

var int = 1
var long = 0L
var float = 0F
var double = 0.0

只要 Kotlin 可以推導(dǎo),這個規(guī)則同樣適用與其他一些類型。通常,如果是局部變量,當(dāng)你在聲明一個值或者變量的時候你不需要指明類型。在一些無法推導(dǎo)的場景里,你才需要用完整的聲明變量語法指明變量類型。

看到var 你是否聯(lián)想到了我們在js開發(fā)中的變量聲明,是不是感覺又從陌生回到了熟悉的面孔,那還在等什么趕快加入到學(xué)習(xí)的行列吧。

代碼中使用聲明:

val a: Int? = 10000
val b: Long? = a 
var f: Float? = 0F
var d: Double? = 0.0

使用中轉(zhuǎn)型注意:

顯式轉(zhuǎn)換

由于不同的表示,短類型不是長類型的子類型。如果是的話我們就會碰到下面這樣的麻煩了

//這是些偽代碼,不能編譯的
val a: Int? =1 //一個裝箱過的 Int (java.lang.Integer)
val b: Long? = a // 一個隱式裝箱的 Long (java.lang.Long)
pritn ( a == b )// 很驚訝吧 這次打印出的是 'false'

因此特性甚至值都會悄悄丟失掉

所以,短類型是不會隱式轉(zhuǎn)換為長類型的。這意味著我們必須顯式轉(zhuǎn)換才能把 Byte 賦值給 Int

val b: Byte = 1 // OK, literals are checked statically
val i: Int = b //ERROR
//我們可以通過顯式轉(zhuǎn)換把數(shù)值類型提升
val i: Int = b.toInt() // 顯式轉(zhuǎn)換

每個數(shù)值類型都支持下面的轉(zhuǎn)換:

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

隱式轉(zhuǎn)換的缺席是很少提及,因為我們可以使用上下文推斷出類型,并且算術(shù)運算會為合適的轉(zhuǎn)換進(jìn)行重載,比如1

val l = 1.toLong + 1 //Long + Int => Long

Char字符

由于不是數(shù)值類型,所以我們必須這樣使用:

fun check(c: Char) {//函數(shù)先判斷是不是Char類型
  if (c == 1) { //ERROR: 類型不匹配
    //...
  }
}

字符是單引號包起來的 ‘1','\n','\uFF00'。我們可以顯示的把它轉(zhuǎn)換為 Int 型

fun decimalDigitValue(c: Char): Int {
  if (c !in '0'..'9') 
    throw IllegalArgumentException("Out of range")
  return c.toInt() - '0'.toInt() //顯示轉(zhuǎn)換為數(shù)值類型
}

和數(shù)值類型一樣,字符在空檢查后會在需要的時候裝箱。特性不會被裝箱操作保留的。

布爾類型

布爾值只有 true 或者 false+

布爾值的內(nèi)建操作包括

|| – lazy disjunction && – lazy conjunction

結(jié)尾

好了Kotlin的基本數(shù)據(jù)類型的使用也是講完了,學(xué)習(xí)是我們前進(jìn)的不竭動力。下一篇我們來講Kotlin引用數(shù)據(jù)類型的使用。

Come on,enjoy it.

 

相關(guān)文章

  • IDEA中java斷言assert語法及使用

    IDEA中java斷言assert語法及使用

    這篇文章主要介紹了IDEA中java斷言assert語法詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • Java實現(xiàn)多個wav文件合成一個的方法示例

    Java實現(xiàn)多個wav文件合成一個的方法示例

    這篇文章主要介紹了Java實現(xiàn)多個wav文件合成一個的方法,涉及java文件流讀寫、編碼轉(zhuǎn)換、解析等相關(guān)操作技巧,需要的朋友可以參考下
    2019-05-05
  • Java使用cxf發(fā)布及調(diào)用webservice接口的方法詳解

    Java使用cxf發(fā)布及調(diào)用webservice接口的方法詳解

    今天小編就為大家分享一篇關(guān)于Java使用CXF發(fā)布及調(diào)用WebService接口的方法,文中通過代碼示例給大家介紹的非常詳細(xì),具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2023-08-08
  • Java實現(xiàn)的各種排序算法(插入排序、選擇排序算法、冒泡排序算法)

    Java實現(xiàn)的各種排序算法(插入排序、選擇排序算法、冒泡排序算法)

    本文是小編給大家?guī)淼膉ava各種排序算法知識,包括插入排序、選擇排序算法、冒泡排序算法,代碼簡單易懂,需要的朋友可以參考下
    2016-08-08
  • Spring條件注解用法案例分析

    Spring條件注解用法案例分析

    這篇文章主要介紹了Spring條件注解用法,結(jié)合具體實例形式分析了Spring條件注解相關(guān)原理、使用方法及操作注意事項,需要的朋友可以參考下
    2019-11-11
  • Java兩整數(shù)相除向上取整的方式詳解(Math.ceil())

    Java兩整數(shù)相除向上取整的方式詳解(Math.ceil())

    在調(diào)外部接口獲取列表數(shù)據(jù)時,需要判斷是否已經(jīng)取完了所有的值,因此需要用到向上取整,下面這篇文章主要給大家介紹了關(guān)于Java兩整數(shù)相除向上取整的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • Java?Socket實現(xiàn)聊天室功能

    Java?Socket實現(xiàn)聊天室功能

    這篇文章主要為大家詳細(xì)介紹了Java?Socket實現(xiàn)聊天室功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • JAVA回顧:封裝,繼承,多態(tài)

    JAVA回顧:封裝,繼承,多態(tài)

    這篇文章主要介紹了java封裝繼承多態(tài),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08
  • java中addMouseListener()方法的使用

    java中addMouseListener()方法的使用

    這篇文章主要介紹了java中addMouseListener()方法的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java8新特性之Lambda表達(dá)式淺析

    Java8新特性之Lambda表達(dá)式淺析

    這篇文章主要介紹了Java8新特性之Lambda表達(dá)式,本文著重講解了Lambda表達(dá)式的語法部份,需要的朋友可以參考下
    2014-06-06

最新評論

庆元县| 东兰县| 桦甸市| 汽车| 太湖县| 兴仁县| 河东区| 五大连池市| 焦作市| 祁东县| 铁力市| 周宁县| 大连市| 疏附县| 石河子市| 郧西县| 南木林县| 义马市| 肇东市| 汕头市| 栾川县| 泰和县| 黄冈市| 安乡县| 乐安县| 锡林郭勒盟| 方城县| 通州区| 临沂市| 巴林右旗| 阳新县| 台东市| 冀州市| 民乐县| 河间市| 策勒县| 密云县| 平潭县| 泸水县| 久治县| 富川|