亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

基本類型

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

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

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

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

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

Kotlin 的 數(shù)值類型

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

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

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

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

數(shù)值類型的聲明

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

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

2 .類型推導(dǎo)

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

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

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

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

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

代碼中使用聲明:

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

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

顯式轉(zhuǎn)換

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

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

因此特性甚至值都會(huì)悄悄丟失掉

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

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

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

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

隱式轉(zhuǎn)換的缺席是很少提及,因?yàn)槲覀兛梢允褂蒙舷挛耐茢喑鲱愋停⑶宜阈g(shù)運(yùn)算會(huì)為合適的轉(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: 類型不匹配
    //...
  }
}

字符是單引號(hào)包起來(lái)的 ‘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ù)值類型一樣,字符在空檢查后會(huì)在需要的時(shí)候裝箱。特性不會(huì)被裝箱操作保留的。

布爾類型

布爾值只有 true 或者 false+

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

|| – lazy disjunction && – lazy conjunction

結(jié)尾

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

Come on,enjoy it.

 

相關(guān)文章

  • SpringBoot自動(dòng)配置Quartz的實(shí)現(xiàn)步驟

    SpringBoot自動(dòng)配置Quartz的實(shí)現(xiàn)步驟

    本文主要介紹了SpringBoot自動(dòng)配置Quartz的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • IntelliJ IDEA中properties文件顯示亂碼問(wèn)題的解決辦法

    IntelliJ IDEA中properties文件顯示亂碼問(wèn)題的解決辦法

    今天小編就為大家分享一篇關(guān)于IntelliJ IDEA中properties文件顯示亂碼問(wèn)題的解決辦法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-10-10
  • SpringBoot過(guò)濾器與攔截器深入分析實(shí)現(xiàn)方法

    SpringBoot過(guò)濾器與攔截器深入分析實(shí)現(xiàn)方法

    大家應(yīng)該都曉得實(shí)現(xiàn)過(guò)濾器需要實(shí)現(xiàn) javax.servlet.Filter 接口,而攔截器會(huì)在處理指定請(qǐng)求之前和之后進(jìn)行相關(guān)操作,配置攔截器需要兩步,本文通過(guò)實(shí)例代碼給大家介紹SpringBoot 過(guò)濾器和攔截器的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2022-11-11
  • Mybatis 返回值類型和參數(shù)傳遞的配置方法

    Mybatis 返回值類型和參數(shù)傳遞的配置方法

    在 MyBatis 中,返回值類型和參數(shù)傳遞是 Mapper 接口中至關(guān)重要的兩個(gè)方面,正確理解和使用它們可以幫助我們高效、準(zhǔn)確地進(jìn)行數(shù)據(jù)庫(kù)操作,接下來(lái)通過(guò)本文給大家介紹Mybatis 返回值類型和參數(shù)傳遞的配置方法,感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • 淺析Java?NIO?直接緩沖區(qū)和非直接緩沖區(qū)

    淺析Java?NIO?直接緩沖區(qū)和非直接緩沖區(qū)

    本篇文章主要為大家介紹了Java?NIO?中直接緩沖區(qū)和非直接緩沖區(qū)的定義以及使用流程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-11-11
  • Java開(kāi)發(fā)之request對(duì)象常用方法整理

    Java開(kāi)發(fā)之request對(duì)象常用方法整理

    這篇文章主要介紹了 Java開(kāi)發(fā)之request對(duì)象常用方法整理的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Lombok在idea中的使用教程

    Lombok在idea中的使用教程

    Lombok是一個(gè)可以通過(guò)簡(jiǎn)單的注解形式,來(lái)幫助我們簡(jiǎn)化消除一些必須有但顯得很臃腫(如果getter、setter方法)的Java代碼的工具,通過(guò)使用對(duì)應(yīng)的注解,可以在編譯源碼的時(shí)候生成對(duì)應(yīng)的方法,這篇文章主要介紹了Lombok在idea中的使用,需要的朋友可以參考下
    2023-03-03
  • SpringBoot上傳圖片與視頻不顯示問(wèn)題的解決方案

    SpringBoot上傳圖片與視頻不顯示問(wèn)題的解決方案

    這篇文章主要介紹了關(guān)于springboot上傳圖片與視頻不顯示問(wèn)題,最近做畢設(shè)時(shí)候需要上傳視頻的圖片與視頻,但是每次都需要重啟前端才能展示出此圖片,所以本文給大家介紹了SpringBoot上傳圖片與視頻不顯示問(wèn)題的解決方案,需要的朋友可以參考下
    2024-03-03
  • 詳解Java注解知識(shí)點(diǎn)

    詳解Java注解知識(shí)點(diǎn)

    這篇文章主要介紹了詳解Java注解知識(shí)點(diǎn),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • SpringBoot增強(qiáng)Controller方法@ControllerAdvice注解的使用詳解

    SpringBoot增強(qiáng)Controller方法@ControllerAdvice注解的使用詳解

    這篇文章主要介紹了SpringBoot增強(qiáng)Controller方法@ControllerAdvice注解的使用詳解,@ControllerAdvice,是Spring3.2提供的新注解,它是一個(gè)Controller增強(qiáng)器,可對(duì)controller進(jìn)行增強(qiáng)處理,需要的朋友可以參考下
    2023-10-10

最新評(píng)論