Kotlin的基本数据类型

前言

在学习一门编程语言,那必然是学习语法 ,在语法的学习之中数据类型又有着举足轻重的地位,今天我们就聊聊kotlin的基本数据类型

基本数据类型

Kotlin 提供了一组表示数字的内置类型。 对于整数,有四种不同大小的类型,因此值的范围也不同。

在这里插入图片描述
这是kotlin官网的一张关于基本数据类型的截图,kotlin的一大特点便是数据的类型推倒,所有以未超出 Int 最大值的整型值初始化的变量都会推断为 Int 类型。如果初始值超过了其最大值,那么推断为 Long 类型。 如需显式指定 Long 型值,请在该值后追加 L 后缀。

fun main() {
   val value = 1 //自动推断为Int类型
   val longValue = 1L //推断为Long类型
    
}

对于浮点数,Kotlin 提供了 Float 与 Double 类型。 根据 IEEE 754 标准, 两种浮点类型的十进制位数(即可以存储多少位十进制数)不同。 Float 反映了 IEEE 754 单精度,而 Double 提供了双精度。

   val doubleValue = 2.3 //自动推断为Double类型
   val floatValue = 2.4f //通过显示的添加一个f声明float类型数据

请注意,与一些其他语言不同,Kotlin 中的数字没有隐式拓宽转换。 例如,具有 Double 参数的函数只能对 Double 值调用,而不能对 Float、 Int 或者其他数字值调用。

字面量

我的理解就是看到这样写出来的变量就知道他是啥(是什么类型的变量),在kotlin中对于整型的字面量包含2进制, 10 进制和16进制 (不支持8进制)

   val value = 1 //自动推断为Int类型  十进制的整型
   val value2 = 0x0F //自动推断为Int类型  十六进制的整型
   val value3 = 0b00001011//自动推断为Int类型  二进制的整型

对于Float和Double类型 默认的字面量是小数,float类型的字面量是后面加了f的小数

    val doubleValue = 2.3 //自动推断为Double类型
    val floatValue = 2.4f //通过显示的添加一个f声明float类型数据

显示转换

kotlin中的显示转化就是可以将一个大的类型通过 toXXX()转化为对应的类型
每个数字类型支持如下的转换:

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

运算

Kotlin支持数字运算的标准集,运算被定义为相应的类成员(但编译器会将函数调用优化为相应的指令)
浮点数的比较

相等性检测:a == b 与 a != b
比较操作符:a < b、 a > b、 a <= b、 a >= b
区间实例以及区间检测:a..b、 x in a..b、 x !in a..b

字符

字符用 Char 类型表示。它们不能直接当作数字,但是我们可以显式把字符转换为 Int 数字:

fun decimalDigitValue(c: Char): Int {
    if (c !in '0'..'9')
        throw IllegalArgumentException("Out of range")
    return c.toInt() - '0'.toInt() // 显式转换为数字
}

Boolean

布尔用 Boolean 类型表示,它有两个值:true 与 false。若需要可空引用布尔会被装箱。
Boolean数据类型的运算

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

字符串

字符串用 String 类型表示。字符串是不可变的。 字符串的元素——字符可以使用索引运算符访问: s[i]

for (c in str) {
    println(c)
}

可以用 + 操作符连接字符串。这也适用于连接字符串与其他类型的值, 只要表达式中的第一个元素是字符串:

val s = "abc" + 1
println(s + "def")

字符串的字面值:Kotlin 有两种类型的字符串字面值: 转义字符串可以有转义字符, 以及原始字符串可以包含换行以及任意文本。原始字符串 使用三个引号(""")分界符括起来,内部没有转义并且可以包含换行以及任何其他字符:

字符串模版:字符串字面值可以包含模板表达式 ,即一些小段代码,会求值并把结果合并到字符串中。 模板表达式以美元符($)开头,由一个简单的名字构成:

val i = 10
println("i = $i") // 输出“i = 10”

val s = "abc"
println("$s.length is ${s.length}") // 输出“abc.length is 3”
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值