Kotlin 基本类型

Posted xhBruce

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin 基本类型相关的知识,希望对你有一定的参考价值。

Kotlin 基本类型


常量与变量


  • 可变变量定义:var <标识符> : <类型> = <初始化值>
  • 不可变变量定义:val <标识符> : <类型> = <初始化值>

⼀次赋值(只读)的局部变量:

    val a: Int = 1 // ⽴即赋值
    val b = 2 // ⾃动推断出 `Int` 类型
    val c: Int // 如果没有初始值类型不能省略
    c = 3 // 明确赋值 

可变变量:

    var x = 5 // ⾃动推断出 `Int` 类型
    x += 1

数字


Kotlin 提供了如下的内置类型来表示数字,Kotlin 中字符不是数字

类型Bit 宽度
Double64
Float32
Long64
Int32
Short16
Byte8

数值常量

  • 十进制: 123 Long 类型⽤⼤写 L 标记: 123L
  • 十六进制: 0x0F
  • 二进制: 0b00001011
  • 注意: 不支持八进制

Kotlin 同样支持浮点数的常规表示方法:

  • 默认 double:123.5 、123.5e10
  • Float 用 f 或者 F 标记: 123.5f

数值使用下划线断句

    val oneMillion = 1_000_000
    val creditCardNumber = 1234_5678_9012_3456L
    val socialSecurityNumber = 999_99_9999L
    val hexBytes = 0xFF_EC_DE_5E
    val bytes = 0b11010010_01101001_10010100_10010010

数值转换

每个数字类型⽀持如下的转换:

  • toByte(): Byte
  • toShort(): Short
  • toInt(): Int
  • toLong(): Long
  • toFloat(): Float
  • toDouble(): Double
  • toChar(): Char

运算

Kotlin支持数字运算的标准集;但对于位运算,没有特殊字符来表示,而只可用中缀方式调用命名函数(只用于 Int 和 Long ):

  • shl(bits) ‒ 有符号左移 (Java 的 << )
  • shr(bits) ‒ 有符号右移 (Java 的 >> )
  • ushr(bits) ‒ 无符号右移 (Java 的 >>> )
  • and(bits) ‒ 位与
  • or(bits) ‒ 位或
  • xor(bits) ‒ 位异或
  • inv() ‒ 位非

字符


字符用 Char 类型表示。它们不能直接当作数字比较,但可以数值计算
在这里插入图片描述

    var c: Char = '1'
    println(c.toInt())
    println(c - 1)

布尔


布尔⽤ Boolean 类型表⽰,它有两个值:true 和 false。


数组


  与 Java 不同的是,Kotlin 中数组是不型变的(invariant)。这意味着 Kotlin 不让我们把 Array 赋值给 Array ,以防止可能的运行时失败
  Kotlin 也有无装箱开销的专门的类来表示原生类型数组: ByteArray 、ShortArray 、IntArray 等等。这些类和 Array 并没有继承关系,但是它们有同样的方法属性集。

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

字符串


字符串用 String 类型表示。字符串是不可变的。字符串的元素(字符)可以使用索引运算符访问: s[i] 。可以⽤ for 循环迭代字符串:

    for (c in str) {
        print(c)
    }

字符串赋值

fun main() {
    val s = "Hello, world!\\n"
    println(s)
    val text = """ 
        for (c in "foo") 
            print(c) 
    """
    println(text)
    val text2 = """ 
        |for (c in "foo")
        |    print(c) 
        """.trimMargin()
    println(text2)
}

通过 trimMargin() 函数去除前导空格,默认 | 用作边界前缀,但你可以选择其他字符并作为参数传入trimMargin(">")
在这里插入图片描述

字符串模板

字符串可以包含模板表达式 ,即⼀些小段代码,会求值并把结果合并到字符串中。模板表达式以美元符( $ )开头,由一个简单的名字构成;或者用花括号扩起来的任意表达式:

fun main() {
    val i = 10
    val s = "i = $i" // 求值结果为 "i = 10"
    println(s)
    println("i = $i")
    val s2 = "abc"
    val str = "$s2.length is ${s2.length}" // 求值结果为 "abc.length is 3"
    println(str)
    println("$s2.length is ${s2.length}")
}

在这里插入图片描述
这里发现print与Java不同,不可直接用+连接输出字符串
在这里插入图片描述

以上是关于Kotlin 基本类型的主要内容,如果未能解决你的问题,请参考以下文章

如何从片段 KOTLIN 中调用意图 [重复]

如何在 Kotlin 片段内的按钮之间切换片段?

kotlin-从一个片段更改多个片段的小数位

如何更改片段 Kotlin

如何在kotlin的片段内显示网格视图?

如何在kotlin中从一个片段转到另一个片段?