Kotlin解构声明和组件函数

Kotlin解构声明和组件函数

    结构声明,这个功能允许你展开单个复合值,并使用它来初始化多个单独的变量。

  val p=Point(10,20)
  val (x,y)=p
  println(x)//10
  println(y)//20

    一个结构声明看起来像一个普通的变量声明,但它在括号中有多个变量。


使用解构声明来返回多个值

 data class NameComponents(val name:String,val extension:String)

 fun splitFileName(fullName:String):NameComponents {
      val result = fullName.split(".", limit = 2)
      return NameComponents(result[0], result[1])
 }
val (name,ext)=splitFileName("example.kt")
name//example
ext//kt

1.解构声明和循环

    解构声明不仅可以用作函数创作的顶层语句,还可以用在其他可以声明的地方,例如in循环。一个很好的例子,是枚举map中的条目。下面是一个小例子,使用这个语法打印给定map中的所有条目。

    用解构声明来遍历map

  fun printEntries(map:Map<Any,Any>){
      for ((key,value) in map){
          LogS("$key->$value")
      }
  }
Oracle->java
JetBrains->kotlin

    这个简单的例子用到了两个Kotlin约定:一个是迭代对象,另一个是用于解构声明。Kotlin标准库给map增加一个扩展的iterator函数,用来返回map条目的迭代器。因此,与Java不同的是,可以直接迭代map。它还包含Map.Entry上的拓展函数component1和component2,分别返回它的键和值。实际上,前面的循环被转换成了这样的代码:

  for(entry in map.entries){
        val key=entry.component1()
        val value=entry.component2()
  }
这个例子再次印证了拓展函数对于约定的重要性。




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值