Kotlin 第一讲:数据类型
boolean 类型
Number 类型
可定义的类型
类型 | 字节长度 |
---|---|
Double | 64 |
Float | 32 |
Long | 64 |
Int | 32 |
Short | 16 |
Byte | 8 |
如何定义
Kotlin 中存在一个特点, Float 和 Double有一个静态变量NaN(不是一个数的数)
输出结果:
数字类型做比较
kotlin中 ==相当于调用 equals 方法。在做大小比较时候和 java 不同 kotlin 具有严格的校验。不同的数据类型是无法作比较的。(在编译时期就会报错,包括赋值)
类型转换
toByte()
toShort()
toInt()
toLong()
toFloat()
toDouble()
toChar()
位运算
Kotlin 不在像 java 使用 <> | & 操作符来进行位运算,而是提供了对应的函数.
运算符 | 对比java |
---|---|
shl |
有符号左移( java 的 << ) |
shr |
有符号右移( java 的 >> ) |
ushr |
有符号右移( java 的 >>> ) |
and |
位与( java 的 & ) |
or | 位或( java 的` |
xor |
位异或( java 的 ^ ) |
inv |
位非( java 的 ~ ) |
让我们来巧妙的复习下 kotlin 中的位运算:
区间 Range
Kotlin特殊的类型,和数学上的区间概念属于同一概念
定义闭区间
半开区间
Char
和 java 的一样,占2个字节(没啥好说的)。
字符串
Kotlin 相比较 java 字符串,变动更为的强大。
支持了更多的方法和定义类型。
直接索引访问字符
字符串模板
其实很多语言都有这个功能。
在 java 的世界中通过 +拼接字符串的形式,比较复杂丶难用丶并且易出错。
kotlin 支持字符串模板的功能(其他语言玩烂的功能),只需要通过 $符合编写表达式。
如:
拼接一个字段的值:
$XXX字段名,拼接运算表达式返回值:
${表达式}
更夸张的字符串
当我们要输出,一个有格式的模板字符串。
使用 \n 简直是噩梦。
Kotlin 为我们考虑了这点,只需这样定义:
“””XXXX内容”””
总结
相比较 java 数据类型区分基本与引用,而kotlin给我的感觉就是已经不存基本数据类型的概念。所有的类型全部封装成了类,并且自动拆装箱。这也是所有类型赋值必须类型相同才可以赋值。而 java 在基本数据类型赋值上,处于睁一只眼,闭一只眼。