//1.如何声明一个基本数据类型的变量,有哪些方法? //基本数据类型的整型数据类型均为Int,如或超过了Int的取值范围,则会推断为Long //编译器会根据赋值【100】,推断出number数据类型为Int val number:Int = 100 //虽然没有明确指定变量bigNumber的数据类型, //但是编译器根据赋值发现【8000000000】已经超过了Int的最大值 //所以bigNumber的数据类型会升级为Long val bigNumber:Long = 8000000000 //在赋值的数字后面加上L,会自动推断为Long类型 val longNumber = 20L //在变量后面+ : + 数据类型 val byteNumber:Byte = 1
//浮点类型 //编译器或根据赋值 推断出变量的类型 val doubleNumber:Double = 3.1415928888 val floatNumber:Float = 3.1415928888f//尾部加f或F显示表示这是一个Float类型的浮点数 println("floatNumber:" + floatNumber) println("doubleNumber:" + doubleNumber) //floatNumber:3.141593 float数据类型,如果赋值超过了精度,会四舍五入。最多6位小数 //doubleNumber:3.1415928888 double类型,小数点最多是16位。
//字符类型 //赋值的时候用单引号引起来 val char:Char = '0' //布尔类型,使用Boolean来声明类型,只有两种止true/false val isVisible:Boolean = false//true val isVisible2 = true
//字符串类型
val str:String = "1234567890"
//从字符串里面取出一个字符时为字符为类型
val strNumber2: Char = str[1]
//字符串的模板表达式 以$开始
println("The Result is $str")
println("Text length is ${str.length}")
//字符串拼接操作
println("I am " + 10 + "years old")
//字符转义 \n换行符的意思
val helloWorld = "Hello,world!\n"
println(helloWorld + "\n" + "how are you")
//helloworld3要求他的字符串内容时json格式,
val helloworld3 = "{\"key\":\"value\"}"
//"""分解符,字符串内容无需转义,看起来更清爽
val helloworld4:String = """
|Tell me and I forget.
|Teach me and I remeber'
|{"key1": "value1"}
|{"key2": "value2"}
""".trimIndent()
类型强制转换
在kotlin中与java不同的是通过调用toInt、toDouble、toFloat子类函数来实现数字类型的强制转换的
//数据类型间的强制转换 val number100: Int = 100 //声明一个整型 number对象 println("转换成string:${number100.toString()}")
四则运算
//数据类型的加减乘除 //在计算机里面整数除以整数,得到结果还是整数,小数点会被抹掉 val numberInt = 3 / 2 //1.5 println("numberInt:$numberInt") //输出1 //整数的3除以小数2,结果就是小数 val numberDouble = 3 / 2.toDouble() //输出1.5 println("numberDouble:$numberDouble") println("乘法:" + numberInt * numberDouble) println("取余:" + 3 % 2) //输出1
位运算
kotlin中位运算和java不同的是没有采用特殊符号来表示,可以采用了中缀函数方式调用具名函数
shl(bits) 有符号左移【shl是Shift Logical Left的缩写】
shr(bits)有符号右移
ushr(bits)无符号右移
and(bits)与
or(bits)或
inv()非
xor(bits)异或
//位运算 val vip = true val admin = false //与操作,要求两个都满足,结果才会为true val result = vip.and(admin) // false //或操作,只要有一个条件是true,结果才会为true val result2 = vip.or(admin) //true //无符号右移 //0000 1000---》0000 0010 = 2 val result3 =8 ushr (2) println("result:$result") println("result2:$result2") println("result3:$result3")