Kotlin基础
一.数据类型
1.基本数据类型:数字,字符,布尔值,数组与字符串
1).数字
1.1整数
Byte->1字节-8bit->范围->(-128至127)
Short->2字节-16bit
Int->4字节-32bit
Long->8字节->64bit->范围(-2的63次幂至2的63次幂-1)
值得说明的是:
1.如果超过了Int的范围而未动态指明为Long类型的,Kotlin会自动推断为Long,
2.同Java一样,指定Long类型是,请在值后面追加L
1.2小数
FLoat-4字节-32bit-单精度
Double-8字节-64bit-双精度
值得说明的是:
1.若未指明小数的类型,则Kotlin默认推断为Double类型
2.同Java一样,若需指定数据为Float类型,则添加F或f的后缀
1.3常量
十进制:456,需Long类型则是456L
十六进制:0x101F
注意:不支持八进制
1.4小测
测试类型
fun testPrintDouble() {
var i = 1
println(i.javaClass)//int
printDouble(i)//报错,参数类型不对
var j = 1.1
printDouble(j)
println(j.javaClass)//double
var k = 1.1F
printDouble(k)//报错,参数类型不对
println(k.javaClass)//float
}
fun printDouble(i: Double) {
println("i is $i")
}
2)布尔:Boolean,true/false,java中的基本类型为boolean
3)数组:关键字为Array
fun testArray() {
//创建Array的方式
var array = arrayOf("1", "2", "3")//使用库函数
var emptyArray = arrayOfNulls<String>(3)//创建长度为3的元素为空的数组
val async = Array(3) { i ->
(i * i).toString()
}//用数组长度声称元素内容
async.forEach { println(it) }//0,1,4
}
4).字符串:关键字为String,与 Java一致,是不可变的,但是引用可变,但是可以使用for循环迭代字符串(类似于数组迭代)
4.1字符串模板
fun testString() {
var text = "kotlin demo"
var format = "text is $text"
println(format)//text is kotlin demo
var formatNew = "text size is ${text.length}"
println(formatNew)//text size is 11
var price = "${'$'}9.9"
println(price)//$9.9
}
二.表达式
####1.when表达式(java没有),与java的switch类似,最简单的demo
fun testWhen(x: Int) {
//最简单
when (x) {
1 -> println("x===1")
2 -> println("x===2")
else -> {
println("其他值")
}
}
//分之合并
when (x) {
1, 2 -> println("x===1")
else -> {
println("其他值")
}
}
//表达式作为分之条件
when (x) {
parseInt("5") -> println("x===5")
else -> {
println("其他值")
}
}
//检验是否在某个区间
when (x) {
in 1..10 -> println("x属于1-10之间")
else -> {
println("其他值")
}
}
//is的使用
when (x) {
is Int -> println("x是整数")
else -> {
println("x不是整数")
}
}
//代替 if else
var text: String = "123"
when {
text.startsWith("1")-> println("$text 是1开头的字符串")
else->{
println("$text 不是1开头的字符串")
}
}
}
2.for的新用法
fun testFor() {
var list = arrayOf(1, 2, 3, 4)
//打印数组元素
for (number in list) {
println(number)
}
//打印索引
for (index: Int in list.indices) {
println(index)
println(list[index])
}
//使用库函数withIndex
for ((index, value) in list.withIndex()) {
println("item in $index is $value")
}
}
网友评论