Android Kotlin入门-基本类型

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weiwozhiyi/article/details/50755367

首先先对KotLin进行介绍:

      KotLin是由JetBrains设计的开放源码的编程语言,它正在java开发者中变得越来越流行。KotLin通常被吹捧为Java的继承者,相比较Java而言,KotLin提供更为丰富的开发经验,因为它更现代,更具有表现力和更简洁。

如果你在寻求Android开发的可替代编程语言,那么应该试一下KotLin。使用KotLin,你可以很容易的在Android工程中替代Java或者与Java混合使用。

正文:

在KotLin,一切都是在这个意义上,我们可以调用成员函数和属性的任何变量对象。有些类型是内置的,因为它们的实现是优化的,但对用户看起来像普通的类。在本节中我们描述这些类型:数字、字符、布尔值和数组。

Numbers

KotLin处理数字的方式接近java,但又不完全相同。例如,不存在扩大转换为数字和文字在某些情况略有不同。
KotLin提供以下内置类型代表数字(这是接近java)


注意,字符不是数字在KotLin

字面常量

Long类型通过大写字母L来表示:123L

十六进制:0x0F

二进制:0b00001011

注意:八进制不支持

KotLin也支持传统类型的Float、Double类型:

默认情况是Double类型:123.5,123.5e10

Float类型通过f或者F表示:123.5f

例子:

val a: Int = 10000
        print(a === a) //打印为true
        val boxedA: Int? = a //?=意味着boxedA可以为空
        val anotherBoxedA: Int? = a
        System.out.println(boxedA === anotherBoxedA) //打印为false
val a: Int = 10000
        print(a == a) // 打印true
        val boxedA: Int? = a
        val anotherBoxedA: Int? = a
        print(boxedA == anotherBoxedA) // 打印true
“==”与“===”是不同的,一个是判断值是否相等,一个是判断值及类型是否完全相等,由上面可知boxedA和anotherBoxedA指向的是不同的对象

显示转化

注意:较小的类型不是更大类型的子类型

val a: Int? = 1 
        val b: Long? = a // 编译出错,Int类型
因此,较小的类型是不隐式转换为更大的类型。这意味着,我们不能没有明确指定一个byte类型的值转换为int型变量

val b: Byte = 1 
        val i: Int = b // 错误
我们可以显示转化为更大的类型
val b: Byte = 1
        val i: Int = b.toInt() // 正确
每个数字类型都支持转化

  • toByte(): Byte
  • toShort(): Short
  • toInt(): Int
  • toLong(): Long
  • toFloat(): Float
  • toDouble(): Double
  • toChar(): Char
隐式转换的缺失是因为很少引人注目的类型是从上下文中推断,和算术运算重载相应的转换,例如

 val l = 1L + 3 // Long + Int => Long <span style="font-family: Arial, Helvetica, sans-serif;">//正确</span>

运算:

val x = (1 shl 2) and 0x000FF000
这里是按位运算的完整列表(只在Int和Long可用)

  • shl(bits) – signed shift left (Java’s <<)
  • shr(bits) – signed shift right (Java’s >>)
  • ushr(bits) – unsigned shift right (Java’s >>>)
  • and(bits) – 位与
  • or(bits) – 位或
  • xor(bits) – 位异或
  • inv() – 位取反

Characters

    fun decimalDigitValue(c: Char): Int {
        if (c !in '0'..'9')//c不再0到9字符范围内,则抛出异常
            throw IllegalArgumentException("Out of range")
        return c.toInt() - '0'.toInt() // 显示转化为数字
    }
注意:像数字、字符如果使用了需要可以为空的表达式则不能调用方法

Booleans

这个Boolean类型只有两个属性:true和false

Arrays

生成数组两种方法:
val arr = Array(5,{i->(i)})//第一种
        val arr1 = arrayOf(1,2,3)//第二种
KotLin也有专门的类来表示原始类型数组没有额外开销:ByteArrayShortArrayIntArray等等

Strings

val str : String = "Andly"
        for (c in str) { //循环对str字符串遍历
            System.out.println(c)
        }
字符串模板

字符串中也可以有表达式,只需要在表达式前面加上$

val s = "abc"
        val str = "$s.length is ${s.length}" // evaluates to "abc.length is 3"

${'$'}9.99 //打印之后是:$9.99

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页