Kotlin基本语法1到函数

1.range表达式

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模板

4.函数

fun main() {

    println(doSomething(1, true))


}

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

    return "result $age $flag"
}

5.Unit函数

7.Nothing类型

fun main() {

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



}

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

    return "result $age $flag"
}

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.匿名函数

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

10.函数参数

 

 

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

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.简略写法

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 关键字

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.函数引用

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.函数类型作为返回类型

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.闭包

18.Lambda匿名内部类

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

相关推荐

  1. Kotlin基础语法

    2024-02-15 09:52:02       51 阅读
  2. Kotlin 基础语法

    2024-02-15 09:52:02       29 阅读
  3. 快速入门Kotlin基本语法

    2024-02-15 09:52:02       38 阅读
  4. Kotlin初级【基本语法、数据类型、循环】

    2024-02-15 09:52:02       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-15 09:52:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-15 09:52:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-15 09:52:02       87 阅读
  4. Python语言-面向对象

    2024-02-15 09:52:02       96 阅读

热门阅读

  1. c++游戏服务器开发

    2024-02-15 09:52:02       56 阅读
  2. Linux

    2024-02-15 09:52:02       40 阅读
  3. 【Springboot】参数校验 spring-boot-starter-validation

    2024-02-15 09:52:02       56 阅读
  4. 突破编程_C++_面试(基础知识(14))

    2024-02-15 09:52:02       48 阅读
  5. Junit

    Junit

    2024-02-15 09:52:02      47 阅读
  6. Ngnix常用配置及和基本功能讲解

    2024-02-15 09:52:02       55 阅读