一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|C/C++|

服務器之家 - 編程語言 - JAVA教程 - Kotlin教程之基本數據類型

Kotlin教程之基本數據類型

2020-10-26 16:35Losileeya JAVA教程

這篇文章主要介紹了Kotlin教程之基本數據類型的學習的相關資料,需要的朋友可以參考下

Kotlin教程之基本數據類型的學習

基本類型

我們知道java的基本類型分為基本數據類型:

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

和引用數據類型:

  • class Type 類類型
  • interface Type 接口類型
  • array Type 數組類型
  • null Type 空類型

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

Kotlin 的 數值類型

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

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

Kotlin教程之基本數據類型

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

Kotlin 的 數值類型 的使用

數值類型的聲明

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

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

2 .類型推導

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

?
1
2
3
4
5
6
7
8
var string: String = ""
var string = ""
var char = ' '
 
var int = 1
var long = 0L
var float = 0F
var double = 0.0

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

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

代碼中使用聲明:

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

使用中轉型注意:

顯式轉換

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

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

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

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

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

每個數值類型都支持下面的轉換:

?
1
2
3
4
5
6
7
toByte(): Byte
toShort(): Short
toInt(): Int
toLong(): Long
toFloat(): Float
toDouble(): Double
toChar(): Char

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

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

Char字符

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

?
1
2
3
4
5
fun check(c: Char) {//函數先判斷是不是Char類型
  if (c == 1) { //ERROR: 類型不匹配
    //...
  }
}

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

?
1
2
3
4
5
fun decimalDigitValue(c: Char): Int {
  if (c !in '0'..'9')
    throw IllegalArgumentException("Out of range")
  return c.toInt() - '0'.toInt() //顯示轉換為數值類型
}

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

布爾類型

布爾值只有 true 或者 false+

布爾值的內建操作包括

?
1
|| – lazy disjunction && – lazy conjunction

結尾

好了Kotlin的基本數據類型的使用也是講完了,學習是我們前進的不竭動力。下一篇我們來講Kotlin引用數據類型的使用。

Come on,enjoy it.

原文鏈接:http://blog.csdn.net/u013278099/article/details/50704262

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 韩国三级hd中文字幕李采潭 | 久久偷拍人 | 午夜深情在线观看免费 | 亚洲精品久久麻豆蜜桃 | 好猛好紧好硬使劲好大刺激视频 | 欧美一级级a在线观看 | 亚洲性69影视 | 日韩精品免费看 | 动漫人物差差差动漫人物免费观看 | 亚洲国产在线午夜视频无 | 出a级黑粗大硬长爽猛视频 吃胸膜奶视频456 | 男人肌肌捅女人 | 9久re在线观看视频精品 | xxx95日本老师xxx学生 | yellow高清视频日本动漫 | 欧美日本道免费一区二区三区 | bl双性受乖调教改造身体 | 特色特色大片在线 | 亚洲国产日韩制服在线观看 | 日本一片免费观看高清完整 | 青草园网站在线观看 | 楚乔传第二部免费观看全集完整版 | 久久日本片精品AAAAA国产 | 青春娱乐国产分类精品二 | 精品亚洲综合久久中文字幕 | 7777奇米影视 | futa文| 大胆人gogo888体艺术在线 | 女黑人尺寸bbb | 高跟丝袜麻麻求我调教 | 日韩人成免费网站大片 | 欧美人与禽杂交大片 | 日本一本二本三区免费 | 国产免费美女视频 | 厨房里摸着乳丰满在线观看 | 国产欧美一区二区三区免费 | 紧身牛仔裤美女被啪啪久久网 | 欧美精品久久久亚洲 | 久久无码人妻中文国产 | 亚洲精品久久啪啪网站成年 | 亚洲精品久久碰 |