Kotlin学习(3)-基础之基本类型

首先牢记一个知识点:Kotlin中一切皆是对象

Kotlin中不再像Java那样拥有所谓的primitive主数据类型(基本数据类型),取而代之的是封装好的类型。
它们是:数字、字符、布尔值、数组和字符串(下图提供了Java的基本数据类型作对比)。

1 Kotlin中表示数字

type bit width
Double 64
Float 32
Long 64
Int 32
Short 16
Byte 8

字符在Kotlin中不是数字

Java基本数据类型参考
Kotlin学习(3)-基础之基本类型_第1张图片

1.1 数字常量表示

  • 十进制:1992
  • Long类型:1992L
  • 十六进制:0x0F
  • 二进制:0b00001011
  • 浮点数double(默认):123.5
  • Float:123.5f

(Kotlin不支持八进制)

//使用下划线易读
val oneMillion = 1_000_000

1.2 表示方式

Kotlin中,三个等号"===“表示比较对象地址,两个”=="表示比较两个值大小。

val a: Int = 10
println(a===a)//输出为true,值相等,地址相等

//经过了数字装箱
val boxedA: Int? = a
val anotherBoxedA:Int? = a
println(boxedA===anotherBoxedA)//输出为false,地址不同

println(boxedA == anotherBoxedA)//输出为true,保留了值相等

1.3 显示转换

Kotlin中较小的类型不能隐式转换为较大的类型,因为较小类型不是较大类型的子类。(对比Java的隐式转换)Kotlin提供了类型转换函数来拓宽数字:

val b: Byte = 1
val a: Int = b.toInt()//显示拓宽
print(a)

  • toByte()
  • toShort()
  • toInt()
  • toLong()
  • toFloat()
  • toDouble()
  • toChar()

1.4 运算

位运算支持

  • shl(bits):有符号左移
  • shr(bits):有符号右移
  • ushr(bits):无符号右移
  • and(bits):位与
  • or(bits):位或
  • xor(bits):位异或
  • inv(位非)

字符

字符用char表示,不能直接当数字。字符字面值用单引号括起来 ‘1’。特殊字符可以用反斜杠转义。支持转义序列:\t、\b、\n、\r、’、"、\、$.

布尔

布尔用Boolean类表示,它有两个值:true和false.

内置的布尔运算有:

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

数组

数组在Kotlin中使用Array类来表示,它定义了get与set函数(按照运算符重载约定转变为[])以及size属性。创建数组的方法:

  1. arrayOf()或arrayOfNulls()
  2. 构造函数Array
//1.数组-arrayOf
val a = arrayOf(1,2,3)
println(a[0])//[]运算符

//2.数组-构造函数Array
val asc = Array(5){i -> (i * i).toString()}
asc.forEach { 
    println("array result = $it")
}

与Java不同的是,Kotlin中数组是不型变的。

Kotlin也有表示原生类型数组:ByteArray、ShortArray、IntArray等。

字符串

字符串用String类型表示,字符串是不可变的。

  • 使用索引运算符(s[i])访问字符串中的字符
  • 可以用"+"操作符连接字符串
  • 可以使用for循环迭代字符串
  • 字符串字面值之转义字符串
  • 字符串字面值之原始字符串
  • trimMargin()函数可以用来去除前导空格
  • 字符串模板,模板表达式以符号$开头
        val name = "Android"
        println("name[2] = " + name[2])//使用索引运算符

        //迭代字符串
        for (c in name) {
            println("c = $c")
        }

        //+操作符
        val newName = name + " is funny!"
        println("result = $newName")

        //字符串字面值
        val s = "Hello World!\n"
        val text = """
            aoe,
            dddd,
            fff
        """.trimMargin()
        println("text = $text")

输出结果:

Kotlin学习(3)-基础之基本类型_第2张图片

你可能感兴趣的:(Kotlin基本类型,Kotlin)