- Android Development with Kotlin
- Marcin Moskala Igor Wojda
- 320字
- 2021-07-02 18:48:36
Numbers
Basic Kotlin data types used for numbers are equivalents of Java numeric primitives:

Kotlin, however, handles numbers a little bit differently than Java. The first difference is that there are no implicit conversions for numbers--smaller types are not implicitly converted to bigger types:
var weight : Int = 12 var truckWeight: Long = weight // Error1
This means that we cannot assign a value of type Int to the Long variable without an explicit conversion. As we said, in Kotlin everything is an object, so we can call the method and explicitly convert the Int type to Long to fix the problem:
var weight:I nt = 12 var truckWeight: Long = weight.toLong()
At first, this may seem like boilerplate code, but in practice this will allow us to avoid many errors related to number conversion and save a lot of debugging time. This is actually a rare example where Kotlin syntax has more code than Java. The Kotlin standard library supports the following conversion methods for numbers:
- toByte(): Byte
- toShort(): Short
- toInt(): Int
- toLong(): Long
- toFloat(): Float
- toDouble(): Double
- toChar(): Char
We can, however, explicitly specify a number literal to change the inferred variable type:
val a: Int = 1 val b = a + 1 // Inferred type is Int val b = a + 1L // Inferred type is Long
The second difference between Kotlin and Java with numbers is that number literals are slightly different in some cases. There are the following kinds of literal constants for integral values:
27 // Decimals by default 27L // Longs are tagged by a upper case L suffix 0x1B // Hexadecimals are tagged by 0x prefix 0b11011 // Binaries are tagged by 0b prefix
Octal literals are not supported. Kotlin also supports a conventional notation for floating-point numbers:
27.5 // Inferred type is Double 27.5F // Inferred type is Float. Float are tagged by f or F
- Node.js+Webpack開發實戰
- LabVIEW入門與實戰開發100例
- Python for Secret Agents:Volume II
- Koa開發:入門、進階與實戰
- Learning ArcGIS Pro
- PostgreSQL 11從入門到精通(視頻教學版)
- Hands-On RESTful Web Services with Go
- Visual C
- ArcGIS By Example
- JavaScript入門經典
- C語言程序設計
- Java EE企業級應用開發教程(Spring+Spring MVC+MyBatis)
- 機器學習微積分一本通(Python版)
- PHP+MySQL動態網站開發從入門到精通(視頻教學版)
- Ext JS 4 Plugin and Extension Development