Kotlin 笔记(三)

这篇博客深入探讨了Kotlin语言,涵盖了从基础到高级的多个方面,包括内置函数takeUnless、List和Set的创建及操作、Map的使用、数组类型、类与属性的定义、构造函数以及初始化陷阱等,是Kotlin开发者的重要参考资料。
摘要由CSDN通过智能技术生成

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("
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值