- 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
- Qt 5 and OpenCV 4 Computer Vision Projects
- GraphQL學(xué)習(xí)指南
- 零基礎(chǔ)學(xué)Scratch少兒編程:小學(xué)課本中的Scratch創(chuàng)意編程
- Practical DevOps
- Learning AndEngine
- Java應(yīng)用開發(fā)技術(shù)實例教程
- Scala程序員面試算法寶典
- Access 2010中文版項目教程
- Kivy Cookbook
- R數(shù)據(jù)科學(xué)實戰(zhàn):工具詳解與案例分析
- C指針原理揭秘:基于底層實現(xiàn)機(jī)制
- Mastering Elixir
- R語言實戰(zhàn)(第2版)
- Java面向?qū)ο蟪绦蛟O(shè)計教程
- Android開發(fā)進(jìn)階實戰(zhàn):拓展與提升