Kotlin学习-基础-数据类型

Kotlin的数据类型有:数字、字符、布尔值、数组和字符串。

1、数字

kotlin在数字处理上接近于java但是不是完全相同。他提供如下几种内置类型来表示数字:

Double、Float、Long、Int、Short、Byte(字符类型在Kotlin中不是数字)

1.1字面常量

    数值常量有三种:十进制(123,Long类型要加L-123L,Float要加F或者f-123.4f),十六进制(

0x0f),二进制(0b00)。(注:暂不支持8进制

    浮点数在Kotlin中表示方法有:默认double(123.4),Float(123.9F)

1.2数字字面值中的下划线(为了便于读懂)

    val oneMillion = 1_000_000

1.3同一性和相等性(装箱操作)

数字装箱不必保留同一性  (因为在Kotlin中数值其实也是对象,所以装箱操作只是将值赋值给了其他对象,所以

每个装箱后的值的地址都不是一样的)  

val a:Int = 1000
print(a===a)//输出为true
val boxedA : Int?=a
val anotherBoxedA:Int?=a
print(boxed === anotherBoxedA)//输出false

但是可以保留相等性

val a:Int = 1000
print(a==a)//输出true
val boxed : Int? = a
val anotherBoxed : Int? = a;
print(boxed==anotherBoxed)//true

1.4显示转换

在kotlin中较小类型并不是较大类型的子类,即Int类型并不能隐式转换成Long类型,所以不存在

val a : Int?=1
val b : Long?=a

以上这段代码并不能编译通过

因此数值之间的转换要通过显式的方式来    

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

1.5运算

位运算符(只用于Int和Long)有:shl-有符号左移(java的<<),shr-有符号位右移(java>>),ushr-无符号右移

,and-位与,or-位或,xor-位异或,inv-位非

1.6浮点数比较

    相等性检测:用==或者!=

    比较操作符:<、>、<=、>=

    区间检测:a..b、x in a..b、x !in  a..b

1.7字符

字符用Char类型表示,他不能直接当作数字

//错误示例
fun check(c:Char){
    if(c == 1){//错误:类型不兼容
    }
}
//正确用法
fun decimalDigitValue(c:Char):Int{
    if(c !in '0'..'9'){
    }else{
        return c.toInt() - '0'.toInt()
    }
}

猜你喜欢

转载自blog.csdn.net/android_hdh/article/details/80724735