美文网首页
Kotlin 基本数据类型

Kotlin 基本数据类型

作者: 提丶米 | 来源:发表于2018-04-08 10:22 被阅读0次

    基本常量

    • 十进制:123
    • 长整型以大写的 L 结尾:123L
    • 16 进制以 0x 开头:0x0F
    • 2 进制以 0b 开头:0b00001011
    • 注意:8进制不支持
    • 可以使用下划线使数字常量更易读如:1000_0000_0000

    比较两个数字

    • 三个等号 === 表示比较对象地址
    • 两个 == 表示比较两个值大小
          val a: Int = 10000
          println(a === a) // true,值相等,对象地址相等
    
          //经过了装箱,创建了两个不同的对象
          //注意必须加入? 相当于装箱,否则===的结果仍然是true 而不会是false
          val boxedA: Int? = a
          val anotherBoxedA: Int? = a
    
          //虽然经过了装箱,但是值是相等的,都是10000
          println(boxedA === anotherBoxedA) //  false,值相等,对象地址不一样
          println(boxedA == anotherBoxedA) // true,值相等
    

    类型转换

    由于不同的表示方式,较小类型并不是较大类型的子类型,较小的类型不能隐式转换为较大的类型。 这意味着在不进行显式转换的情况下我们不能把 Byte 型值赋给一个 Int 变量。

        var a: Byte = 1 // OK, 字面值是静态检测的
        var b: Int = b // 错误
        //代用其toInt()方法
        var c:Int=b.toInt()
    

    位操作符

    对于Int和Long类型,还有一系列的位操作符可以使用,分别是:

    • shl(bits) – 左移位 (Java’s <<)
    • shr(bits) – 右移位 (Java’s >>)
    • ushr(bits) – 无符号右移位 (Java’s >>>)
    • and(bits) – 与
    • or(bits) – 或
    • xor(bits) – 异或
    • inv() – 反向

    字符

    • Kotlin 中的 Char 不能直接和数字操作,Char 必需是单引号 ' 包含起来的。比如普通字符 '0','a'。
        fun decimalDigitValue(c: Char): Int {
            if (c !in '0'..'9')
                throw IllegalArgumentException("Out of range")
              return c.toInt() - '0'.toInt() // 显式转换为数字
        }
    

    布尔

    • 布尔值与java中布尔值类似,唯一的不同是若需要空引用布尔值会被装箱(也就是上篇文章基本语法中的 ? 所进行的操作)

    数组

    • 数组用类 Array 实现,并且还有一个 size 属性及 get 和 set 方法,由于使用 [] 重载了 get 和 set 方法,所以我们可以用Array.[index] 获取数组某个位置(index)的值
    • 数组的创建两种方式:一种是使用函数arrayOf();另外一种是使用工厂函数
          //[1,2,3]
        val a = arrayOf(1, 2, 3)
        //[0,2,4]
        val b = Array(3, { i -> (i * 2) })
    
        //读取数组内容
        println(a[0])    // 输出结果:1
        println(b[1])    // 输出结果:2
    
    • 除了类Array,还有ByteArray, ShortArray, IntArray,用来表示各个类型的数组,省去了装箱操作,因此效率更高

    字符串

    • 和 Java 一样,String 是可不变的。方括号 [] 语法可以很方便的获取字符串中的某个字符,也可以通过 for 循环来遍历:
          var str="abcd"
          for (c in str) {
              println(c)
          }
    
    • Kotlin 支持三个引号 """ 扩起来的字符串,支持多行字符串,比如:
            val text = """
            多行字符串
            多行字符串
              """
            println(text)   // 输出有一些前置空格
    
    • String 可以通过 trimMargin() 方法来删除多余的空白。
            val text = """
            -多行字符串
            -删除特定的"-"
            -多行字符串
            -Runoob
             """.trimMargin("-")
            println(text)    // 前置空格删除了
    

    字符串模板

    • 字符串可以包含模板表达式 ,即一些小段代码,会求值并把结果合并到字符串中。 模板表达式以美元符($)开头,由一个简单的名字构成:
              val i = 10
              val s = "i = $i" // 求值结果为 "i = 10"
              println(s)
    
              val s = "runoob"
              val str = "$s.length is ${s.length}" // 求值结果为 "runoob.length is 6"
              println(str)
    
             val price = """
              ${'$'}9.99
              """
              println(price)  // 求值结果为 $9.99
    

    相关文章

      网友评论

          本文标题:Kotlin 基本数据类型

          本文链接:https://www.haomeiwen.com/subject/mfukhftx.html