Kotlin 1 新运算符
新运算符: “..” ,"in ","!in" ,"downto","step"
注意:
1. 关系运算符的优先级低于算术运算符。
2. 关系运算符的优先级高于赋值运算符。
区间运算符(a..b)
区间运算符,顾名思义就是可以用来表示两个操作数之间的范围集合。a..b也就我们平时所说的,从a到b所有的数字集合。在Kotlin语言之中,有两种区间运算符:闭区间运算符和开区间运算符。
- 闭区间运算符 : “a..b”从a到b范围内所有的值,包括a和b。
- 半闭区间运算符 : “a until b”从a到b范围内所有的值,包括a和不包括b。
区间表达式由具有操作符形式 “..” 或 rangeTo 辅以 in 和 !in 而得。区间是为任何可比较类型定义的,但对于整型原生类型,它有一个优化的实现。以下是使用区间的一些示例:
for (i in 1..10) { // 等同于 1 <= i && i <= 10
println(i)
}
for (i in 1.rangeTo(10)) { // 等同于 1 <= i && i <= 10
println(i)
}
for (i in 'a'..'z') { // 等同于 'a' <= i && i <= 'z'
println(i)
}
in 代表在区间内,!in表示不在。
整型区间有一个额外的特性:它们可以迭代。 Kotlin编译器负责将其转换为类似 Java 的基于索引的 for循环而无额外开销。
for (i in 1..4) print(i) // 输出“1234”
for (i in 4..1) print(i) // 什么都不输出
运行上述例子,我们可以发现如果只写 “..”,这个区间值只是顺序。如果你想倒序迭代数字呢?也很简单。你可以使用标准库中定义的 downTo 方法:
for (i in 4 downTo 1) print(i) // 输出“4321”
能否以不等于 1 的任意步长迭代数字? 当然没问题, 使用step方法就可以做到:
for (i in 1..4 step 2) print(i) // 输出“13”
for (i in 4 downTo 1 step 2) print(i) // 输出“42”
那么我们如何创建一个半闭区间呢?可以使用 until方法 :
for (i in 1 until 10) { // i in [1, 10) 排除了 10
println(i)
}
Kotlin 1 新运算符的更多相关文章
- Kotlin中三元运算符
int a = 10;int b = 11;int c = a > b ? a : b; 到了 kotlin中 val a = 10val b = 11val c = if (a > b) ...
- Kotlin 关系运算符和Boolean
Kotlin的关系运算符和JAVA,c#都是一样. 没啥子区别 都是那几个. > 大于 < 小于 >= 大于等于 <= 小于等于 != 等于 == 等于 上面这些符号,应该是不 ...
- Android平台的Swift—Kotlin
WeTest 导读 Kotlin 已经出来较长一段时间了,有些同学已经对Kotlin进行了深入的学习,甚至已经运用到了自己的项目当中,但是还有较多同学可能只是听过Kotlin或简单了解过,这篇文章的目 ...
- Android开发人员应该知道的Kotlin
本文来源于我在InfoQ中文站翻译的文章,原文地址是:http://www.infoq.com/cn/news/2016/01/kotlin-android Android开发人员在语言限制方面面临着 ...
- Kotlin学习笔记
Kotlin的注释 Kotlin 的代码注释和Java一模一样 Kotlin的运行方式也是先kotlinc生成字节码,再kotlin字节码 如果一行里面只有一条语句,那么可以不写分号.但如果打算在同一 ...
- Kotlin快速上手
一.Kotlin基础 1.数据类型声明 在Kotlin中要定义一个变量需要使用var关键字 //定义了一个可以修改的Int类型变量 var number = 39 如果要定义一个常量可以使用val关键 ...
- Kotlin技术入门以及和Java对比.md
一.Kotlin基础环境搭建 Android studio的版本大于3.0 直接支持Kotlin语法,直接创建即可; Android studio的版本小于3.0,步骤如下: 需要下载插件 插件搜索 ...
- 浅谈Kotlin(一):简介及Android Studio中配置
浅谈Kotlin(一):简介及Android Studio中配置 浅谈Kotlin(二):基本类型.基本语法.代码风格 浅谈Kotlin(三):类 浅谈Kotlin(四):控制流 前言: 今日新闻:谷 ...
- 快看Sample代码,速学Swift语言(3)-运算符
运算符是用来检查,更改或组合值的特殊符号或短语.Swift提供的很多常规的运算符,如+.-.*./.%.=.==等,以及逻辑运算的&&.||等等,基本上不需要重复介绍,我们在这里只需要 ...
随机推荐
- 如何去除List集合中的重复元素? a,b,c,a,c,b,d,,,,,,
package com.fs.test; import java.util.ArrayList; import java.util.List; public class Listdemo { publ ...
- 基于Websocket的websocketd
WebSocket是什么 WebSocket是HTML5下面的一种技术,设计出来的目的就是要取代轮询和 Comet 技术,使客户端浏览器具备像 C/S 架构下桌面系统的实时通讯能力. 浏览器通过 Ja ...
- java 周期时期计算
package org.apple.date; import java.text.SimpleDateFormat; import java.util.Calendar; import java.ut ...
- java文档注释规范(一)
https://blog.csdn.net/huangsiqian/article/details/82725214 Javadoc工具将从四种不同类型的“源”文件生成输出文档:Java语言类的源文件 ...
- Linux上ssh免秘钥互登
两台机器分别为:master:192.168.1.10sever1:192.168.1.20 1.检查机器名和连通性 a.查看/etc/hostname [root@master master]# m ...
- MP4 ISO基础媒体文件格式 摘要 1
目录 Object-structured File Organization 1 File Type Box (ftyp) Box Structures File Structure and gene ...
- Go语言标准库之fmt.Print
Go语言fmt.Printf使用指南 本文整理了Go语言的标准输出流(fmt.Printf)在打印到屏幕时的格式化输出操作. 在这里按照占位符将被替换的变量类型划分,更方便查询和记忆. General ...
- 004-linux下配置rsyslog日志收集服务器案例 rsyslog+loganalyzer日志服务器,无法添加报表模板解决
centos6系统 client1:192.168.1.33 centos7系统 client2:192.168.1.44 centos7系统 master:192.168.1.55 配置服务端mas ...
- python文件操作-1.将PDF转成Excel
# https://www.jianshu.com/p/f33233e4c712 import pdfplumber # 为了操作PDF from openpyxl import Workbook w ...
- 标准C语言(9)
C语言里所有文字信息必须记录在一组连续的字符类型存储区里所有文字信息必须以字符'\0'做结尾,这个字符的ASCII码就是0符合以上两个特征的内容叫字符串,它们可以用来在程序里记录文字信息.字符串里'\ ...