Kotlin中的基本类型

随着,谷歌开始大力推行Kotlin之后,慢慢的 Kotlin 在 Android 开发圈里是越来越流行了。从这一篇开始,我也计划开始学习一下这门语言,同时做一下笔记。

首先,先推荐一下 Kotlin 中文网

基本类型

kotlin 也是一门面向对象编程的语言,它里面的所有东西也都是一个个对象。 这篇我们就来说说 kotlin 语言中的基本类型:数字、字符、布尔、字符串。

数字类型

  • 整型
    Kotlin 提供了一组表示数字的内置类型。 对于整数,有四种不同大小的类型,因此值的范围也不同。
类型 大小(Byte) 最小值 最大值
Byte 8 -128 127
Short 16 -32768 32767
Int 32 -2,147,483,648 (负2的31次方) 2,147,483,647(2的31次方减1)
Long 64 -9,223,372,036,854,775,808 (负2的63次方) 9,223,372,036,854,775,807(2的63次方减1)

在 kotlin 中,它是有自动类型推导的能力

val one = 1 // Int
val threeBillion = 3000000000 // Long
val oneLong = 1L // Long
val oneByte: Byte = 1 //Byte
  • 浮点型
    kotlin 中提供了 Float 单精度Double 双精度
类型 大小(Byte)
Float 32
Double 64
val pi = 3.14 // Double
val e = 2.7182818284 // Double
val eFloat = 2.7182818284f // Float,实际值为 2.7182817
  • 数字转换
    每个数字类型支持如下的转换:
    • toByte(): Byte
    • toShort(): Short
    • toInt(): Int
    • toLong(): Long
    • toFloat(): Float
    • toDouble(): Double
    • toChar(): Char

字符

字符字面值用单引号括起来: '1'。 特殊字符可以用反斜杠转义。 支持这几个转义序列:\t、 \b、\n、\r、'、"、\ 与 $。 编码其他字符要用 Unicode 转义序列语法:'\uFF00'。

我们可以显式把字符转换为 Int 数字:

fun decimalDigitValue(c: Char): Int {
    if (c !in '0'..'9')
        throw IllegalArgumentException("Out of range")
    return c.toInt() - '0'.toInt() // 显式转换为数字
}

布尔

两个值 truefalse

内置的布尔运算有:

  • || – 短路逻辑或
  • && – 短路逻辑与
  • ! - 逻辑非

数组

Array 类来表示数组。

class Array<T> private constructor() {
    val size: Int
    operator fun get(index: Int): T
    operator fun set(index: Int, value: T): Unit

    operator fun iterator(): Iterator<T>
    // ……
}

使用 arrayOf () 可以创建数组并传入值。

var a = arrayOf(1, 2, 3)

使用 arrayOfNulls() 可以创建一个指定长的,所有元素都为 null 的数组。

还可以 Array 的构造函数的形式创建数组。

// 创建一个 Array<String> 初始化为 ["0", "1", "4", "9", "16"]
val asc = Array(5) { i -> (i * i).toString() }
asc.forEach { println(it) }

Kotlin 中数组是不型变的(invariant)。这意味着 Kotlin 不让我们把 Array<String> 赋值给 Array<Any>,以防止可能的运行时失败

原生类型数组

val x: IntArray = intArrayOf(1, 2, 3)
x[0] = x[1] + x[2]

// 大小为 5、值为 [0, 0, 0, 0, 0] 的整型数组
val arr = IntArray(5)

// 例如:用常量初始化数组中的值
// 大小为 5、值为 [42, 42, 42, 42, 42] 的整型数组
val arr = IntArray(5) { 42 }

// 例如:使用 lambda 表达式初始化数组中的值
// 大小为 5、值为 [0, 1, 2, 3, 4] 的整型数组(值初始化为其索引值)
var arr = IntArray(5) { it * 1 }

字符串

String 表示字符串。

val s = "abc"
println("$s.length is ${s.length}") // 输出“abc.length is 3”
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。