Kotlin实战指南四:区间
转载请标明出处:https://blog.csdn.net/zhaoyanjun6/article/details/87866868
本文出自【赵彦军的博客】
Kotlin初体验四:区间
- 区间
- 实用函数
区间
区间表达式由具有操作符形式 … 的 rangeTo 函数辅以 in 和 !in 形成。 区间是为任何可比较类型定义的,但对于整型原生类型,它有一个优化的实现。以下是使用区间的一些示例:
if (i in 1..10) { // 等同于 1 <= i && i <= 10println(i)
}
整型区间(IntRange、 LongRange、 CharRange)有一个额外的特性:它们可以迭代。 编译器负责将其转换为类似 Java 的基于索引的 for-循环而无额外开销:
for (i in 1..4) print(i)
如果你想倒序迭代数字呢?也很简单。你可以使用标准库中定义的 downTo() 函数:
for (i in 4 downTo 1) print(i)
能否以不等于 1 的任意步长迭代数字? 当然没问题, step() 函数有助于此:
for (i in 1..4 step 2) print(i)for (i in 4 downTo 1 step 2) print(i)
要创建一个不包括其结束元素的区间,可以使用 until 函数:
for (i in 1 until 10) {// i in [1, 10) 排除了 10println(i)
}
实用函数
rangeTo //升序区间
downTo() //降序区间
reversed() //翻转区间
step() //步长
实例演练
var a = 0.rangeTo(10) //相当于 0..10var b = 10.downTo(0) //相当于 10..0
b = b.reversed() //翻转区间
var b = 10.downTo(0).step(3)
请注意,返回数列的 last 值可能与原始数列的 last 值不同,以便保持不变式 (last - first) % step == 0 成立。这里是一个例子:
(1..12 step 2).last == 11 // 值为 [1, 3, 5, 7, 9, 11] 的数列
(1..12 step 3).last == 10 // 值为 [1, 4, 7, 10] 的数列
(1..12 step 4).last == 9 // 值为 [1, 5, 9] 的数列
个人微信号:zhaoyanjun125 , 欢迎关注
Kotlin实战指南四:区间相关推荐
- Kotlin实战指南十七:JvmField、JvmStatic使用
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/116668666 本文出自[赵彦军的博客] 文章目录 往期精彩文章 @JvmFiel ...
- Kotlin实战指南二十:flow
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/117370700 本文出自[赵彦军的博客] 文章目录 往期精彩文章 flow 是啥 ...
- Kotlin实战指南十九:use 函数魔法
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/117366756 本文出自[赵彦军的博客] 文章目录 往期精彩文章 use函数 往期 ...
- Kotlin实战指南十八:open、internal 关键字使用
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/117365712 本文出自[赵彦军的博客] 文章目录 往期精彩文章 open关键字 ...
- Kotlin实战指南十三:协程
转载请标明出处:https://blog.csdn.net/zhaoyanjun6/article/details/95626034 本文出自[赵彦军的博客] 文章目录 前言-协程介绍 主流语言对协程 ...
- Kotlin实战指南十四:协程启动模式
转载请标明出处:https://blog.csdn.net/zhaoyanjun6/article/details/96008400 本文出自[赵彦军的博客] 文章目录 协程启动 DEFAULT LA ...
- Kotlin实战指南十:let、apply、with、run
转载请标明出处:https://blog.csdn.net/zhaoyanjun6/article/details//94402604 本文出自[赵彦军的博客] 文章目录 let 示例1:基础用法 示 ...
- Kotlin实战指南三:流程控制
转载请标明出处:https://blog.csdn.net/zhaoyanjun6/article/details/87855797 本文出自[赵彦军的博客] Kotlin初体验三:流程控制 if 表 ...
- Kotlin实战指南一:集合
转载请标明出处:https://blog.csdn.net/zhaoyanjun6/article/details/87781732 本文出自[赵彦军的博客] Kotlin初体验一:集合 集合 一.l ...
最新文章
- SpringMVC如何是使用自动注入@autowrid
- 计算机里硬盘图标,计算机中在硬盘图标下面有个其他里PPS图标肿么删?
- U盘拷贝文件很慢?稍微改变一下使用方式,传输速度就快了6倍
- linux mmu的实现的讲解_Linux_MMU
- 谢谢有你【我与51CTO一“七”成长】
- 蚂蚁区块链第1课 蚂蚁10大区块链解决方案及应用场景
- Ruby on Rails 入门学习
- Android实例开发中按钮(Button)的四种点击方式的实现
- 小程序 Serverless: 解放生产力,驱动研发效能提升 1
- 监控100台RouterOS路由器的各个pppoe拨号失败的数目并钉钉通知
- 究竟是什么人在买爱马仕?
- paper 77:[转载]ENDNOTE使用方法,常用!
- RHCA-红帽认证架构师
- Linux:ls命令
- p5.js 光速入门中文教程
- 我是一个功利主义ACMer
- VR看房火热背后,简单谈谈拍摄VR全景图片——普及贴
- Linux语音通话如何消除回声(PulseAudio)
- 天源迪科和科大讯飞的关系_【科大讯飞学习机招代理】科大讯飞学习机介绍,有什么优势?...
- python指定变量类型_Python 变量类型详解
热门文章
- linux一切对象皆文件,为什么说Linux下“一切皆文件”?
- android 内存占用大 卡顿,安卓手机用久了就会卡顿?那是内存使用率高了,你需要这么做...
- python格式化代码工具_python 代码格式化工具:YAPF
- asp和php数据库怎么区分,asp与php的数据库有哪些区别
- mysql中my.cnf文件_MySQL中my.cnf文件选项
- 直播 | AAAI 2022论文解读:三⻆分解一致性约束的端到端语音翻译
- 飞桨领航团邀你出战!黑客松线下48H Coding Party等你来
- NAACL 2021 | AWS AI 提出基于对比学习的端到端无监督聚类方法
- IDRLnet: 基于内嵌物理知识神经网络的开源求解框架
- GlobalPointer:用统一的方式处理嵌套和非嵌套NER