Kotlin基本数据类型

 

1-基本的数值类型

Kotlin 的基本数值类型包括 Byte、Short、Int、Long、Float、Double 等。不同于 Java 的是,字符不属于数值类型,是一个独立的数据类型

2-字面常量

val oneMillion = 1_000_000  //使用下划线使数字常量更易读

3-比较两个数字

三个等号 === 表示比较对象地址,两个 == 表示比较两个值大小,Kotlin 中没有基础数据类型,只有封装的数字类型,这样可以保证不会出现空指针

fun main(args: Array<String>) {
    val a: Int = 10000
    println(a === a) // true,值相等,对象地址相等

    //经过了装箱,创建了两个不同的对象
    val boxedA: Int? = a
    val anotherBoxedA: Int? = a

    //虽然经过了装箱,但是值是相等的,都是10000
    println(boxedA === anotherBoxedA) //  false,值相等,对象地址不一样
    println(boxedA == anotherBoxedA) // true,值相等
}

4-类型转换

较小类型并不是较大类型的子类型,较小的类型不能隐式转换为较大的类型

    val b:Byte = 1
    //val i:Int = b  错误
    val i:Int = b.toInt()  //正确
    val c = 1L + 3 //自动推导

其他的方法:

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

5-位操作符

    val d = 0b111
    println(d.shl(1)) // 0b1110  左移一位 14,类似java <<
    println(d.shr(1)) //0b011    右移一位 3,类似java >>
    println(d.ushr(1)) //0b011   无符号右移 3
    println(d.and(0b101)) // 0b111与0b101为0b101
    println(d.or(0b100)) // 0b111或ob100为0b111
    println(d.xor(0b100)) // 0b111异或0b100为0b011
    println(d.inv()) // 反向 -7

6-字符

fun charToDigitValue(c: Char): Int {
    if (c !in '0'..'9')
        //if( c == 1){}  和 Java 不一样,Kotlin 中的 Char 不能直接和数字操作
        throw IllegalArgumentException("Out of range")
    return c.toInt() - '0'.toInt() // 显式转换为数字,要减去后边的,不然输出的就是ASKII
}

7-布尔

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

内置的布尔运算有:

|| – 短路逻辑或
&& – 短路逻辑与
! - 逻辑非

8-数组

数组的创建两种方式:一种是使用函数arrayOf();另外一种是使用工厂函数

其他的数组创建函数还有:intArrayOf,byteArrayOf,shortArrayOf

fun main(args: Array<String>) {
    //[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

    val x:IntArray = intArrayOf(1,2,3)
    println(x[0]) //输出 :1
    
}

9-字符串

字符串可以单行,也可以多行

fun main(args: Array<String>) {
    val text = """
    多行字符串
    多行字符串
    """
    println(text)   // 输出有一些前置空格

    val text2 = """
    |多行字符串
    |菜鸟教程
    |多行字符串
    |Runoob
    """.trimMargin()  //默认 | 用作边界前缀,也可以传入参数trimMargin(">)
    println(text2)    // 前置空格删除了

    val s = "TestStr"
    val str = "$s.length is ${s.length}" // 求值结果为 "TestStr.length is 7"
    println(str)
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值