1.Kotlin语言的takeUnless内置函数
//takeIf 和takeUnless 功能是相反的
//name.takeIf {true/false} true返回本身 false返回null
//name.takeUnless {true/false} true返回null false返回本身
class Manager{
private var infoValue:String?=null
fun getInfoValue()=infoValue
fun setInfoValue(infoValue:String){
this.infoValue=infoValue
}
}
fun main(){
val manager=Manager()
manager.setInfoValue("sss")
var r=manager.getInfoValue().takeUnless{it.isNullOrBlank()}?:"未经过任何初始化"
println(r)
}
2.Kotlin语言的List创建与元素获取学习
fun main(){
val list =listOf("Derry","Zhangsan","Lisi","Wang")
//普通取值方式:索引 内部运算符重载[]==get
println(list[0])
println(list[1])
println(list[2])
println(list[3]) //索引有崩溃的风险
//写KT代码 一定不会出现空指针异常,下标越界异常
println(list.getOrElse(3){"越界"})
println(list.getOrNull(1))
println(list.getOrNull(4))
println(list.getOrNull(111))//越界会返回空
println(list.getOrNull(222)?:"越界")
//小结:开发过程中,尽量使用getOrElse 或 getOrNull,才能体现KT的亮点
}
3.Kotlin语言的可变List学习
fun main(){
//可变集合的应用
val list=mutableListOf("Zhangsan","Wangwu","Derry")
list.add("Zhaoliu")
list.remove("Wangwu")
println(list)
//不可变集合
val list2=listOf(123,456,789)
//list2.add list2.remove 没有这两个函数
val list3=list2.toMutableList()
list3.add(111)
list3.remove(123)
println(list3)
val list4=mutableListOf("A","B","C")
list4.add("z")
list4.remove("A")
println(list4)
val list5=list4.toList()
println(list5)
}
3.Kotlin语言的mutator学习
fun main(){
//1.+= -=
val list=mutableListOf("Derry","DerryAll","DerryStr","Zhangsan")
list+="李四" //mutator的特性 += -=其实就是运算符的重载
list+="王五"
list-="DerryStr"
println(list)
//2.removeIf
//list.removeIf{true} //自动遍历整个可变集合,进行一个元素一个元素的删除
list.removeIf{it.contains("Derry")} //过滤包含"Derry"的所有元素
println(list)
}
4.Kotlin语言的List集合的遍历
fun main(){
val list =listOf(1,2,3,4,5,6,7)
println(list) //不是遍历
//第1种
for(i in list){
println(i)
}
//第2种
list.forEach{ //it==每一个元素 或者使用s代替it"s ->"
println(it) //或者使用println(s)
}
//第3种
list.forEachIndexed{item,i ->
println("值是$i,下标是$item")
}
}
5.Kotlin语言解构语法过滤元素学习
fun main(){
val list=listOf("李元霸","李小龙","李连杰")
val(value1,value2,value3)=list
println("$value1,$value2,$value3")
val(v1,v2,v3)=list
println("$v1,$v2,$v3")
//用下划线可以不接受赋值,节约一点性能
val(_,n2,n3)=list
//println(_) "_"下划线不是变量名,表示不接受赋值
println("$n2,$n3")
}
6.Kotlin语言的Set创建与元素获取
fun main(){
val set=setOf("