类型 | 位宽 | Min Value | Max Value | 示例 |
---|---|---|---|---|
Byte | 8 | -128 | 127 | val number:Byte = 1 |
Short | 16 | -32768 | 32767 | val number:Short = 1 |
Int | 32 | -2^31 | 2^31 - 1 | 1000 |
Long | 64 | -2^63 | 2^63 - 1 | 1000L, |
数值默认是Int,如果超出范围则自动转换为Long类型,同时Long类型也可以通过在数字后面加‘L’来表示 (1000L)。 如果需要使用Byte和Short,则可以在创建变量时手动定义:
val number:Byte = 2
类型 | 位宽 | 示例 |
---|---|---|
Float | 32 | 4.210f 尾部加f或F表示Float |
Double | 64 | 4.210 浮点默认是double |
类型 | 示例 |
---|---|
Char | '0' , 'a' 用单引号,可以自行推断 |
String | "123456" 用双引号,可以自行推断 |
val cha = '1'
val str1 = "123456"
val str2: String = "12345"
//可以使用index来访问字符串中的字符
println(str1[0])
类型 |
---|
false |
true |
字符串模板: "$" 符号
1. 用$符号可以在字符串中加入模板表达式。
2. 在字符串中使用花括号,可以使用任意表达式和转义字符。
val date = 21
println("Today is $number")
println("Today is" + date)
val str = "Kotlin"
println("Kotlin has a length of ${str.length}")
// 用花括号转义
println("${'$'}100")
字符转义:
val str1 = "换行 \n"
// 打印引号 "
// val str2 = """ //会报错
val str2 = "\"" // 使用 \ 进行转义
用一对三个引号可以不使用转义符,且放置多行字符串。
val str3 = """
可以放多行字符串
"
不需要使用转义符也可以打印出"
"""
类型强制转换举例
要转换的类型 | 函数 |
---|---|
Byte | toByte() |
Short | toShort() |
Int | toInt() |
Char | toChar() |
位运算
shl(bits)
– 有符号左移shr(bits)
– 有符号右移ushr(bits)
– 无符号右移and(bits)
– 位与or(bits)
– 位或inv()
– 位非xor(bits)
– 位异或
val result = 10 ushr(3)
println(result)
// 输出结果为 1
10 -> 0000 1010
ushr(3) -> 右移三位,等于去掉末尾三位,左边补0
结果为 0000 0001 -> 1