2021-11-30(Kotlin学习笔记)高阶函数
2021-12-02 本文已影响0人
简单快乐6
个人笔记
val name: String = "bsm"
val age: Int = 0
fun commont(){
println("我是方法")
}
fun main() {
commont().myRun {
println("AAAAA")
}
onRun(true){
println("打印")
}
onRun(true,{
println("打印11")
})
val runValue = Runnable {
println("打印2222")
}
// :: 取出函数
onRun(true,runValue::run)
}
//给所有类型增加扩展函数
//T --> 范型 R --> 返回类型范型
//T.() == 给T加一个匿名函数
fun <T,R> T.myRun(m: T.() -> R) : R{
return m()
}
fun <T,R> T.myRun1(m: () -> R) : R = m()
fun <T,R> myWith(input: T, mm: T.() -> R) : R{
return input.mm() //this
}
fun <T, R> T.myLet(mm: T.(T) -> R) : R{
// T == this () -> R
// mm(this) == this vs T.(T) -> R
return mm(this)
}
//inline 减少无用代码, 代码更少
//控制器 如果是true, 执行
inline fun onRun(isRun: Boolean, mm:() -> Unit){
if(isRun) mm()
}