Kotlin基本语法1到函数

1.range表达式

Kotlin基本语法1到函数_第1张图片

fun main() {
    var age = 12.3
    if (age in 0.0..3.3){
       println("婴幼儿")
    }else if (age in 4.0..12.2){
        println("少儿")
    }else{
        println("未知")
    }


    /**
     * in 后面还可以接 list set 都可以
     */
    if (age !in 0.0..3.3){
        println("婴幼儿")
    }




}

2.when表达式


    val school = "小s学"
    val level = when (school) {
        "学前班" -> "幼儿"
        "小学" -> "少年"
        "中学" -> "青年"
        "高中" -> "学生"
        else -> {
            println("未知")
        }
    }
    println(level)

3.String模板

Kotlin基本语法1到函数_第2张图片

4.函数

Kotlin基本语法1到函数_第3张图片

fun main() {

    println(doSomething(1, true))


}

private fun doSomething(age:Int,flag:Boolean):String{

    return "result $age $flag"
}

Kotlin基本语法1到函数_第4张图片

5.Unit函数

Kotlin基本语法1到函数_第5张图片

7.Nothing类型

Kotlin基本语法1到函数_第6张图片

fun main() {

    println(doSomething(1, true))
    TODO("nothing")
    println("after nothing")



}

private fun doSomething(age:Int,flag:Boolean):String{

    return "result $age $flag"
}

Kotlin基本语法1到函数_第7张图片

8.反引号的函数命名

Kotlin基本语法1到函数_第8张图片

public class MyJava {
    public static void  is (){
        System.out.println("is invoked");
    }
    public  void  saa (){
        System.out.println("is invoked");
    }
}

 Kotlin 调用Java

fun main() {

    MyJava.`is`()
    MyJava().saa()
}
fun `**~special function with weird name~**`(){

}

9.匿名函数

Kotlin基本语法1到函数_第9张图片

fun main() {
    val total = "Mississippi".count()
    val total1 = "Mississippi".count { letter -> letter == 's' }
    println(total)
    println(total1)
}

Kotlin基本语法1到函数_第10张图片

10.函数参数

 Kotlin基本语法1到函数_第11张图片

Kotlin基本语法1到函数_第12张图片 Kotlin基本语法1到函数_第13张图片

fun main() {

//    val blessingFunction:()->String={
//        "我很牛逼"
//    }
//
//    println(blessingFunction())



    val blessingFunction ={ name:String,year:Int ->
        val holiday = "New Year ."
        "$name, Happy $holiday $year"
    }

    println(blessingFunction("jack",3))
}

11.什么是lambda

Kotlin基本语法1到函数_第14张图片

12.定义参数是函数的函数

fun main() {

  val getDiscountWords ={goodsName:String,hours:Int ->
        val  currentYear =2027
      "${currentYear}年,双十一${goodsName}促销倒计时:$hours 小时"

  }

showOnBoard("卫生纸",getDiscountWords)


}


//具名函数
fun showOnBoard(goodsName:String,getDiscountWords:(String,Int) ->String){
    val hours:Int = (1..24).shuffled().last()
    println(getDiscountWords(goodsName,hours))
}

13.简略写法

Kotlin基本语法1到函数_第15张图片

fun main() {

  

showOnBoard1("卫生纸"){goodsName:String,hours:Int ->
    val  currentYear =2027
    "${currentYear}年,双十一${goodsName}促销倒计时:$hours 小时"

}
}


//具名函数
fun showOnBoard1(goodsName:String,getDiscountWords:(String,Int) ->String){
    val hours:Int = (1..24).shuffled().last()
    println(getDiscountWords(goodsName,hours))
}

 14.函数内联 inline 关键字

Kotlin基本语法1到函数_第16张图片

fun main() {


showOnBoard1("卫生纸"){goodsName:String,hours:Int ->
    val  currentYear =2027
    "${currentYear}年,双十一${goodsName}促销倒计时:$hours 小时"
}



}


//具名函数
inline fun showOnBoard1(goodsName:String,getDiscountWords:(String,Int) ->String){
    val hours:Int = (1..24).shuffled().last()
    println(getDiscountWords(goodsName,hours))
}

15.函数引用

Kotlin基本语法1到函数_第17张图片

fun main() {


showOnBoard2("牙膏",::getDiscountWords)


}

fun getDiscountWords(goodsName: String,hours:Int):String{
    val  currentYear =2027
    return "${currentYear}年,双十一${goodsName}促销倒计时:$hours 小时"
}

//具名函数
fun showOnBoard2(goodsName:String,getDiscountWords:(String,Int) ->String){
    val hours:Int = (1..24).shuffled().last()
    println(getDiscountWords(goodsName,hours))
}

 16.函数类型作为返回类型

Kotlin基本语法1到函数_第18张图片

fun main() {


    val configDiscountWords = configDiscountWords()
    println(configDiscountWords("Jack"))


}


fun configDiscountWords():(String)->String{

    return {goodsName:String ->
        val  currentYear =2027
        val hours:Int = (1..24).shuffled().last()
         "${currentYear}年,双十一${goodsName}促销倒计时:$hours 小时"

    }
}

 17.闭包

Kotlin基本语法1到函数_第19张图片

18.Lambda匿名内部类

Kotlin基本语法1到函数_第20张图片

都是一种思想,lamdba表达式可以被当作函数参数和返回值传递嘛 在kotlin里

你可能感兴趣的:(Kotlin,kotlin,java,前端)