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 条评论
登录 后参与评论

相关文章

来自专栏魂祭心

原 Curry的js实现

3475
来自专栏王硕

原 memmove 和 memcpy的区别

1443
来自专栏C语言及其他语言

[蓝桥杯]Hello, world!

题目描述 This is the first problem for test. Since all we know the ASCII code, your ...

3418
来自专栏GreenLeaves

C#核编之系统数据类型和相应的C#关键字

和任何编程语言一样,C#定义了一组用于表示局部变量、成员变量、返回值以及输入参数的基本数据类型。然而,与其他编程语言不同的是,这些关键字不只是编译器能识别的标记...

1938
来自专栏代码世界

Python之内置函数

内置函数 python里的内置函数。截止到python版本3.6.2,现在python一共为我们提供了68个内置函数。它们就是python提供给你直接可以拿来使...

3077
来自专栏电光石火

PHP获取时间戳的毫秒

php获取时间的方式是time(); 那么如果是涉及需要精细的时间的应用,那么怎么获取呢? /** 获取当前时间戳,精确到毫秒 */ functi...

2949
来自专栏林德熙的博客

C# const 和 readonly 有什么区别

在写常量的时候,是选择使用 const 还是 static readonly 是一个让人难以决定的问题,本文告诉大家这两个方法的区别。

942
来自专栏py+selenium

python爬虫笔记之re.IGNORECASE

       re.IGNORECASE有什么用?re.IGNORECASE是什么意思?(原谅我抓下seo。。)

932
来自专栏知识分享

关于函数指针--简介

函数指针说白了,,,,函数的地址 现在看一个简单的--先定义一个函数指针 void (*f1)();就是这样定义--指向的是一个void类型的 假设定义了另一个...

2918
来自专栏黑泽君的专栏

代码块:在Java中用{}括起来的代码

 (1)在Java中用{}括起来的代码。 (2)代码块分类:(根据其位置和声明的不同) A:局部代码块       在方法定义中,用于限定变量的生命...

661

扫码关注云+社区