美文网首页
Kotlin系列之二:基础(数据类型&表达式)

Kotlin系列之二:基础(数据类型&表达式)

作者: RookieRun | 来源:发表于2020-03-17 22:00 被阅读0次

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")
            }
        }

3.while与java一致

相关文章

网友评论

      本文标题:Kotlin系列之二:基础(数据类型&表达式)

      本文链接:https://www.haomeiwen.com/subject/nvoxyhtx.html