学习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")