Kotlin学习1

77 阅读2分钟

一、声明变量

var name:String = "hjj"
  1. val只读变量
    • 并非绝对只读
    • 编译时常量要在函数之外定义 函数都是在运行时才调用,函数内的变量也是在运行时赋值
  2. var可修改变量
  3. 声明时能推断出类型,可以不指定类型
  4. const常量
  5. 只提供引用类型,不提供基本类型

二、表达式

  1. if/else if与java类似
  2. range表达式
in A..B 
!in A..B

用in关键字检查某个值是否在指定范围内

fun main() {
    val age = 4
    if (age in 0..3) {
        println("<4")
    } else {
        println(">4")
    }
}
  1. when表达式(类似switch case)
fun main() {
    val school = "小学"
    val level: String = when (school) {
        "学前班" -> "幼儿"
        "小学" -> "少儿"
        "中学" -> "青少年"
        else ->  "成年"
    }
    println(level)
}

三、string模板

模板支持在字符串的引号内放入变量值 内部还可写表达式

fun main() {
    val origin = "Jack"
    val dest = "Rose"
    println("$origin love $dest")

    val flag = false
    println("Answer is ${if (flag) "我可以" else "对不起"}")
}

四、函数(重点)

默认public j0D2sP.png

fun main() {
    println(doSomething(5, false))
}

private fun doSomething(age: Int, flag: Boolean): String {
    return "result"
}
  1. 函数参数 默认值,可以给默认值
fun main() {
    println(doSomething())
}

private fun doSomething(age: Int = 2, flag: Boolean = false): String {
    return "result"
}

具名函数参数

fun main() {
    println(doSomething(flag = true, age = 5))
}

private fun doSomething(age: Int = 2, flag: Boolean = false): String {
    return "result"
}

五、Unit函数

不是所有函数都有返回值,没有返回值的函数叫Unit函数,也就是说他的返回类型是Unit

六、Nothing类型

TODO函数的任务就是抛出异常,就是永远别指望它运行成功,返回Nothing类型

七、反引号中的函数名

可以使用空格和特殊字符对函数命名,不过函数名要用一对反引号括``起来 java和Kotlin互相调用时很有用

fun main(){
    MyJava.`is`()
}

fun `**~special function with weird name~**`(){
    
}