Kotlin —  Destructuring Declarations(解构声明)

什么是解构?

解构是从存储在(可能是嵌套的)对象和数组中的数据中提取多个值的一种便捷方式。

有时候,将对象拆分为多个变量是很方便的,例如:

val (name,age)=user

现在,你可以单独的使用name和age了:

println(name)
println(age)

我们可以通过函数返回两个值,例如:

data class User(val name:String,val age:Int)
fun getUser():User{
  return User(name,age)
}

现在我们可以去使用这个方法了:

val (name,age)=getUser()

结构声明和Map一起使用

for((key,value) in map){
  //这里就可以使用key、value了
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Crossin的编程教室

【Python 第52课】 元组

上一次pygame的课中有这样一行代码: x, y = pygame.mouse.get_pos() 这个函数返回的其实是一个“元组”,今天我们来讲讲这个东西。...

3207
来自专栏开源优测

[快学Python3]迭代器和生成器

迭代器 迭代是Python最强大的功能特色,是遍历访问序列元素的一种方式。 迭代器的特性是: 可以记住当前遍历位置 只能往前遍历,不能后退 从序列的第一个元素开...

2626
来自专栏专注研发

POJ1331 Multiply(strtol函数练习)

773
来自专栏marsggbo

jquery的html,text,val

.html()用为读取和修改元素的HTML标签 .text()用来读取或修改元素的纯文本内容 .val()用来读取或修改表单元素的value值。 这三个方法功能...

1715
来自专栏柠檬先生

JavaScript 基础(三) 对象 条件判断

JavaScript的对象是一种无序的集合数据类型,它是由若干键对组成。     var guagua = {         name:'瓜瓜', ...

2018
来自专栏nnngu

Java的参数传递是值传递还是引用传递

当一个对象被当作参数传递到一个方法后,在此方法内可以改变这个对象的属性,那么这里到底是值传递还是引用传递?    答:是按值传递。Java 语言的参数传递只有按...

2774
来自专栏一枝花算不算浪漫

[读书笔记]C#学习笔记五: C#3.0自动属性,匿名属性及扩展方法

33210
来自专栏学海无涯

17.Swift学习之类

823
来自专栏blackheart的专栏

[C#1] 1-Hello World

一个简单的C#从控制台程序代码如下: 1 using System; 2 using System.Text; 3 /// <summary> 4 //...

17010
来自专栏开源优测

[快学Python3]迭代器和生成器

迭代器 迭代是Python最强大的功能特色,是遍历访问序列元素的一种方式。 迭代器的特性是: 可以记住当前遍历位置 只能往前遍历,不能后退 从序列的第一个元素开...

2597

扫码关注云+社区