博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Kotlin技术分享:中缀调用、解构声明
阅读量:6340 次
发布时间:2019-06-22

本文共 844 字,大约阅读时间需要 2 分钟。

  一、中缀调用

  可以以以下形式创建一个 Map 变量

  

  使用 “to” 来声明 map 的 key 与 value 之间的对应关系,这种形式的函数调用被称为中缀调用

  中缀调用可以与只有一个参数的函数一起使用,无论是普通的函数还是扩展函数。中缀符号需要通过infix修饰符来进行标记

  

  对于mapOf函数来说,它可以接收不定数量的Pair类型对象,因此我们也可以通过自定义的中缀调用符test来创建一个 map 变量

  

  

  二、解构声明

  有时会有把一个对象解构成多个变量的需求,在 Kotlin 中这种语法称为解构声明

  例如,以下例子将 Person 变量结构为了两个新变量:name 和 age,并且可以独立使用它们

  

  一个解构声明会被编译成以下代码:

  

  其中的component1()和component2()函数是在 Kotlin 中广泛使用的约定原则的另一个例子。任何表达式都可以出现在解构声明的右侧,只要可以对它调用所需数量的component函数即可

  需要注意的是,componentN()函数需要用operator关键字标记,以允许在解构声明中使用它们

  对于数据类来说,其自动生成了componentN()函数,而对非数据类,为了使用解构声明,需要我们自己来手动声明函数

  

  如果我们需要从一个函数返回两个或者更多的值,这时候使用解构声明就会比较方便了

  这里使用的是标准类 Pair 来包装要传递的数据,当然,也可以自定义数据类

  

  此外,解构声明也可以用在 for 循环中

  

  对于遍历 map 同样适用

  

  同样也适用于 lambda 表达式

  

  如果在解构声明中不需要某个变量,那么可以用下划线取代其名称,此时不会调用相应的componentN()操作符函数

  

转载于:https://juejin.im/post/5d01f764e51d45776147612c

你可能感兴趣的文章
CSS选择符
查看>>
剑指offer---19--***-顺时针打印矩阵
查看>>
关于数组随机不重复的思路
查看>>
oracle赋值问题(将同一表中某一字段赋值给另外一个字段的语句)
查看>>
Windows 安装 Jenkins 2.6
查看>>
计算一个点是否在一个区域中
查看>>
正则表达式
查看>>
淘宝面试题:有一个一亿节点的树,现在已知两个点,找这两个点的共同的祖先。...
查看>>
EntityFramework 6.x多个上下文迁移实现分布式事务
查看>>
高版本SQL备份在低版本SQL还原问题
查看>>
一键安装最新内核并开启 BBR 脚本
查看>>
C# 绘制图表(柱状图,线性图,饼状图)
查看>>
.NET中使用Redis
查看>>
PHP 页面跳转的三种方式
查看>>
Juniper总结
查看>>
屏蔽scrollview的滚动
查看>>
面试题目3:智能指针
查看>>
取消凭证分解 (取消公司下的多个利润中心)
查看>>
flask ORM: Flask-SQLAlchemy【单表】增删改查
查看>>
Oracle 查询类似 select top 的用法
查看>>