每天学一点 Kotlin ---- 基本类型:数字类型
2021-09-27 本文已影响0人
冯可乐同学
----《第一季Kotlin崛起:次世代Android开发 》学习笔记
总目录:每天学一点 Kotlin ---- 目录
上一篇:每天学一点 Kotlin ---- 常量和变量
下一篇:每天学一点 Kotlin ---- 基本类型:布尔类型
1. 数字类型
Long 长整数 64位
Int 整数 32位
Short 短整数 16位
Byte 字节 8位
Double 双精度小数 64位
Float 浮点数 32位
比较难受的是,类型的首字母是大写的,而且声明变量或常量也和 C/Java 等不一样...
2. 声明和初始化
2.1 变量的声明和初始化
fun main() {
var age1 : Int = 3
var age2 = 4; // Kotlin 会自动推断类型,所以也可以省略类型的关键字
var age3: Int
age3 = 10
// var age4; // 编辑器直接报错了
// age4 = 20
}
2.2 Kotlin 默认的整数类型是 Int,其他的数字类型定义的写法为:
package com.cakes.test
fun main() {
val 一个Int = 123
val 一个Long = 123L
val 一个Double = 123.56
val 一个Float = 123.56F
val 一个八进制 = 0xACF
val 一个二进制 = 0b01010101
println(一个Int)
println(一个Long)
println(一个Double)
println(一个Float)
println(一个八进制)
println(一个二进制)
}
打印结果:
123
123
123.56
123.56
2767
85
3. 数字范围
Kotlin 不支持自动扩展数字范围,转换必须手动进行。每一种数字都有一个转换成其他数字类型的方法。例如:
val num = 123
val long = num.toLong()
val short = num.toShort()
val double = num.toDouble()
val char = num.toChar()
val byte = num.toByte()
在这些数字类型中有一整套的转换函数由于类型相互转换: toByte(), toShort(), toInt(), toLong(), toFloat(), toDouble(), toChar()
4. 二进制运算
Kotlin 也支持对于二进制的运算:左移、右移、逻辑与、逻辑或、异或、取反等运算,和Java中不同的是,这些不是内建运算符,而是用中缀函数类代替的。举个栗子:
println("1 左移 2: " + (1 shl 2))
println("1 右移 2: " + (1 shr 2))
println("1 逻辑与 2: " + (1 and 2))
println("1 逻辑或 2: " + (1 or 2))
println("1 异或 2: " + (1 xor 2))
println("1 取反: " + 1.inv())
打印结果:
1 左移 2: 4
1 右移 2: 0
1 逻辑与 2: 0
1 逻辑或 2: 3
1 异或 2: 3
1 取反: -2
5. 浮点数(小数)
5.1 Kotlin 默认的浮点类型是 Double
5.2 可以用 Double 类型的 toInt() 方法把小数截断为整数,注意:这里不是四舍五入,而是直接把小数点后的部分丢弃。
5.3 在数字运算中,对于常用的加、减、乘、除、取余来说,如果其中有一个是小数的话,那么整体的计算结果也是小数(Double)
5.4 对小数也是可以取余数的
fun main(args: Array<String>) {
println("学习浮点数")
var dNum1 = 10.4
var iNum1 = dNum1.toInt()
var dNum2 = 10.5
var iNum2 = dNum2.toInt()
println("iNum1 = " + iNum1 + ", iNum2 = " + iNum2)
println("12 + 4.0 = " + (12 + 4.0))
println("12 + 4 = " + (12 + 4))
println("12 - 4.0 = " + (12 - 4.0))
println("12 - 4 = " + (12 - 4))
println("12 * 4.0 = " + (12 * 4.0))
println("12 * 4 = " + (12 * 4))
println("12 / 4.0 = " + (12 / 4.0))
println("12 / 4 = " + (12 / 4))
println("12 % 4.0 = " + (12 % 4.0))
println("12 % 4 = " + (12 % 4))
println("12 % 4.1 = " + (12 % 4.1))
println("12 % 4 = " + (12 % 4))
}
打印结果:
学习浮点数
iNum1 = 10, iNum2 = 10
12 + 4.0 = 16.0
12 + 4 = 16
12 - 4.0 = 8.0
12 - 4 = 8
12 * 4.0 = 48.0
12 * 4 = 48
12 / 4.0 = 3.0
12 / 4 = 3
12 % 4.0 = 0.0
12 % 4 = 0
12 % 4.1 = 3.8000000000000007
12 % 4 = 0