Kotlin初阶(1)

587 阅读1分钟

这里是另外一篇,入口:Kotlin初阶(2)

Kotlin初阶易错知识点

1、不需要分号,不需要分号,不需要分号

2、字段定义://var 可变变量;val 常量

例如:

var a: Int = 1
val b = 2
val c: Int = 0
var d: Int = 0

3、字符串的定义,去掉空格

    var age: String? = "abc" //加 ? 可为空
    val age2 = age!!.toInt() //抛出空指针异常
    val age3 = age?.toInt() //不做处理,返回null
    val age4 = age?.toInt() ?: -1 //age为空时,返回-1

text.trimMargin()

4、list,数组是不型变的(invariant)

val items = listOf("item1", "item2", "item3")
        for (item in items) {
            println(item)
        }
        for (index in items.indices) {
            println("item at $index is ${items[index]}")
        }
        //输出
//        item at 0 is apple
//        item at 1 is banana
//        item at 2 is kiwi

5、数组

        //[1,2,3]
        val a = arrayOf(1, 2, 3)

        //[0,2,4]
        val b = Array(3, { i -> (i * 2) })

        for (i in a.indices) {
            println("eche element : " + a[i])
        }

6、运算符(>/</=/>=/<=/!=)

if-else

7、运算逻辑when(X)可以传int,enum等

    val sss = 5
    val validNumbers = 11..19
        when (sss) {
            0, 1 -> print("x == 0 or x == 1")
            in 1..10 -> print("x is in the range")
            in validNumbers -> print("x is valid")
            !in 10..20 -> print("x is outside the range")
            else -> print("none of the above")//如果包含了所有的情况,就不需要写else了
        }

    fun hasPrefix(x: Any): Boolean = when (x) {
        is String -> x.startsWith("prefix")//当是string类型,则运算startsWith(),返回是否以特定前缀结尾
        else -> false//不是string类型,直接返回false
    }
    
//判断某个值是否在一个set集合里面
val items = setOf("apple", "banana", "kiwi")
        when {
            "orange" in items -> {
                println("juicy")
                println("{do something}")
            }
            "apple" in items -> {
                println("apple is fine too")
                println("do another thing!")
            }
        }
        

8、类型转换

val e: Byte = 1
val f: Int = e.toInt()//转换

中缀操作符 as

eg:  val x: String = y as String
val x: String? = y as String?
val x: String? = y as? String

这里是另外一篇,入口:Kotlin初阶(2)