记一次安卓(Kotlin)-kotlin数据类型_03

204 阅读2分钟
目录
  • 基础数据类型
    • 整型
      • Byte
      • Short
      • Int
      • Long
    • 浮点
      • Float
      • Double
  • 字符类型
  • 布尔类型
  • 基础数据运算
  • 类型间相互转换
整数类型
类型位宽最小值最大值
Byte8-128127
Short16-3276832767
Int32-2,147,648(-2^31)2,147,647(2^31-1)
Long64-9,223,372,036,854,775,808 (-2^63)9,223,372,036,775,807 (2^63-1)

可以通过psvm快速生成main方法.

  1. 如何声明一个基本数据类型的变量,有哪些方式?

//基本数据类型的默认类型均为Int,如果超过Int的取值范围,则会推断为Long
//编辑器会根据赋值[100],推断变量number数据类型为Int
val number = 100 

//虽然没有明确指定变量bigNumber的数据类型
//但是编译器会根据赋值发现[8000000000]已经超过了Int的最大值,
//所以bigNumber的数据类型会升级为Long
val bigNumber = 8000000000 

//在赋值的数字的后面加上L,会自动推断为Long类型
val longNumber = 20L

//可以指定类型 
val byteNumber: Byte = 1

Float,Double浮点类型
类型位宽
Float32
Double64

//默认是Double类型
val doubleNumber = 3.1415926

//尾部加f或F显示表示这是一个Float类型的浮点数
val float floatNumber = 3.1415926666f

Kotlin与Java不同的是,Kotlin中数字不存在隐式拓宽转换.比如一个函数参数为Double的函数只能接收Double类型,不能接收Float,Int或者其他数字类型

字符类型,布尔类型

//字符类型,赋值单引号
val char: Char = '0'

//布尔类型
val isVisible: Boolean = false

字符串类型

//字符串类型,赋值用双引号
val str: String = "1234567"
//访问某个元素,取出的元素类型是char类型的
val strNumber = str[0]

//字符串模版
//直接取值用$
val number = 100
println("The Result is $number")
//也可以用表达式用${}
val text = "This is text"
println("Text length is ${text.length}")
//kotlin不支持反斜杠转义,可以用模版语法
val price = "${'$'}9.99"

//字符串的连接操作
print("I am" + 10 + "years old!")

字符串的值

//kotlin有两种类型的字符串字面值:转义字符串可以有转义字符,以及原始字符串可以包含换行以及任何其他文本.
//\n换行
val s = "Hello, world!\n"
//\反斜杠对“”进行转义,保留字符串格式
val s2 = "{\"key\":\"value\"}"
//字符串使用三个引号“”“分界符括起来.内部没有转义并且可以包含换行以及任何其他字符:
val text = """
    for (c in "foo")
        print(c)
"""
//可以通过trimMargin()函数去除前导空格.trimIndent()等.
val text = """
    |Tell me and I forget
    |AAA
    |bbb {"key": "value"}
""".trimMargin()

类型强制转换

//声明一个整形 number对象
val number = 100
number.toString()
number.toByte()
number.toShort()
number.toLong()
number.toFloat()
number.toDouble()
...