Kotlin学习笔记-2 --- 基本数据类型

文章参考

1、基本数值类型

类型位宽度
Byte8
Short16
Int32
Long64
Float32
Double64

注:不同于 Java 的是,字符不属于数值类型,是一个独立的数据类型。

字面常量

十进制123
长整型123L
2进制0b00011011
8进制不支持
16进制0xAB
Float123.4f 或 123.4F
Double123.4 或 123.4e10

注:可以使用下划线使数字常量更易读

val a = 123_456_789
val b = 987_654_321L
val c = 0b1101_0010_1111_0001
val d = 0xAB_CD_E5

2、数据操作

1)比较大小

Kotlin 中没有基础数据类型,只有封装的数字类型。
你每定义的一个变量,其实 Kotlin 帮你封装了一个对象,这样可以保证不会出现空指针。
数字类型也一样,所以在比较两个数字的时候,就有比较数据大小和比较两个对象是否相同的区别了。

==比较值大小
===比较对象地址
	/**
     * 比较大小
     */
    fun compare() {
        val x: Int = 1001
        println("x == x : ${x == x}")   //true
        println("x === x : ${x === x}") //true

        val y1: Int? = x
        val y2: Int? = x
        println("y1 == y2 : ${y1 == y2}")   //true
        println("y1 === y2 : ${y1 === y2}") //true
    }

2)类型转换

每种数据类型都有下面的这些方法,可以转化为其它的类型:

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

例:

	fun typeChange() {
        val b: Byte = 0b1101
        val i: Int = b.toInt()
        println("$i") //输出13
    }

注:有些情况下也是可以使用自动类型转化的

val l = 3L + 1  // Long + Int -> Long

3、字符串

1)字符

和 Java 不一样,Kotlin 中的 Char 不能直接和数字操作。

  • 字符字面值用单引号括起来: ‘1’
  • 特殊字符可以用反斜杠转义。 支持这几个转义序列:\t、 \b、\n、\r、’、"、\ 和 $
  • 编码其他字符要用 Unicode 转义序列语法:’\uFF00’
//Java
public void check(char c) {
   if (c < 65 || c > 90) {
       System.out.println("This character is not in A...Z");
   }
}
//Kotlin
fun check(c: Char) {
    if (c !in 'A'..'Z') {
        println("This character is not in A...Z")
    }
}

2)字符串

	fun stringFun() {

        //字符串
        val str1: String = "test"
        for (c in str1) Log.i(TAG, "$c")

        //多行字符串
        val str2: String = """
            1、多行字符串
            2、多行字符串
            3、多行字符串
            """
        Log.i(TAG, str2)

        // trimMargin() 删除多余的空白
        //默认 | 用作边界前缀,但你可以选择其他字符并作为参数传入,比如 trimMargin(">")
        val str3: String = """
            |4、多行字符串
            |5、多行字符串
            |6、多行字符串
            """.trimMargin()
        Log.i(TAG, str3)
    }

输出
在这里插入图片描述

3)字符串模板

	fun stringMould() {

        val i = 10
        val str1 = "i = $i"
        println(str1) //输出 i = 10


        val str = "killer"
        val str2 = "$str has ${str.length} character"
        println(str2) //输出 killer has 6 character

        val str3 = "The price is ${'$'}6.99"
        println(str3) //输出 The price is $6.99

    }

4、数组

数组用类 Array 实现,并且还有一个 size 属性及 get 和 set 方法。
由于使用 [] 重载了 get 和 set 方法,故可通过下标获取或者设置数组对应位置的值。

除了类Array,还有ByteArray, ShortArray, IntArray,其用法同Array一样。

数组的创建两种方式:

  • 使用函数arrayOf()
  • 使用工厂函数
	fun arrayFun() {

        val arrayA = arrayOf(1, 2, 3, 4, 5)
        val arrayB = Array(5) { i -> (i * 3) }

        Log.i(TAG, "--- a ---")
        for (a in arrayA) Log.i(TAG, "$a")
        Log.i(TAG, "--- b ---")
        for (b in arrayB) Log.i(TAG, "$b")

        val intArray: IntArray = intArrayOf(6, 7, 8, 9, 10)
        Log.i(TAG, "--- intArray ---")
        for (c in arrayB) Log.i(TAG, "$c")

    }

输出
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KillerNoBlood

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值