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){
      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()
  }
这个例子再次印证了拓展函数对于约定的重要性。




你可能感兴趣的:(kotlin,kotlin,解构声明,循环)