2024-04-20

学习kotlin语法  --- 1


//隐式函数 ()是输入 -> String 输出类型 最后一行是返回值 不需要return

val methodAction: () -> String

methodAction ={

    "333"

}

//隐式函数 ()是输入 -> String 输出类型 最后一行是返回值 不需要return 传参数(切记 ->不需要加{})

val methodAction1: (Int, Int, Int) -> String ={ num1, num2, num3->

    val num = num1 + num2 + num3

"$num"

}

methodAction1(1,2,3)

//隐式函数 不加:() 自动推返回类型 如果加:()必须指定返回值类型

val methodAction2 ={ v1: Double, v2: String, v3: Int->

    "v1:$v1,v2:$v2,v3:$v3"

}

//定义函数的函数

fun doSomething(param1: Int, param2: Int, block: (Int, Int) -> Unit) {

// 执行一些操作

    val result = param1 + param2

block(param1, result)

}

// 使用方式 函数的最后一个方法可以写外面 这样做可以让代码更加清晰

//原样

doSomething(1,2,block = { a, b->

    println("原样参数1: $a, 结果: $b")

})

doSomething(1,2){ a, b->

    println("参数1: $a, 结果: $b")

}

//lambda 函数引用  doSomeThingLamba普通函数 lambda对应 函数对象 所以需要加:: 表示引用对象 具名函数

fun doSomeThingLamba(msg: Int, code: Int) {

println("原样参数1: $msg, 结果: $Int")

}

doSomething(1,2, ::doSomeThingLamba)

//函数中定义 匿名函数

fun doSomething(param1: Int, param2: Int): (Int, Int) -> String {

return { num1, num2->

        println(" $num1, 结果: $num2")

"$num1, 结果1111111111: $num2"

    }

}

//返回匿名函数 不能用fun  fun是方法 niminghs是doSomething的返回值 是一个函数

val niminghs = doSomething(1,2)

niminghs(3,4)

var name: String? =null

name ="echo"

var name1: String? =null

//!! 如果是空 崩溃 capitalize 大写

name1!!.capitalize()

// ?: 空合并操作符 如果 name1为null 则执行后面的"" 不为null返回name1

name1 ?:""

//subString

var name2 ="11111111111111"

name2.substring(0 until 3)

//forEach 遍历

name2.forEach {

}

//let 用法  it 返回本身

var value = name?.let {

    //let  it = name 本身

    if (it.isBlank()) {//name = ""

        ""

    }else {

it

    }

}

//Apply

var name3 ="helloketty"

//apply 不持有it 持有this this = name3本身 不管在apply 里面name3怎么变 value1 一直是name3的值

var value1 = name3.apply {

    //大写

    name3.capitalize()

//小写

    name3.toLowerCase()

}

print("$value1")

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 目录 参考资料 语言特性 关键字 变量与常量 数据类型 运算符 operators 控制流程语句 异常 Excep...
    GuoDongW阅读 185,625评论 22 341
  • 代码练习:DartPad 对比语言:JavaScript 1、程序入口 JavaScript:没有入口函数。 Da...
    程序媛的程阅读 3,405评论 0 0
  • 一、快捷键 ctr+b 执行ctr+/ 单行注释ctr+c ...
    o_8319阅读 11,103评论 2 16
  • 循环 go go提供了range关键字可以循环各种切片和数组,同时也提供了多参,这点相比较java会灵活不少, 另...
    编程小世界阅读 12,061评论 1 0
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,933评论 18 399