Kotlin - 区间 Range

Kotlin 中废除了 Java 的 for(初始值; 条件; 增减步长) 的控制规则,改用 range 代替。( a , b ) 开区间,不含首尾。[ a , b ] 闭区间,包含首尾。

操作符/关键字/方法名称用法

..

闭区间

对应方法 a.rangTo(b)

val range1 = 1..10

val range2 = 10..1

1,2,3,4,5,6,7,8,9,10

区间为空

val num = 3

val range 7 = num.rangeTo(6)

3,4,5,6

until

半闭区间

val range3 = 1 until 10

1,2,3,4,5,6,7,8,9(不含尾元素)

..<

效果同上,于v1.9版本加入,改善 until 的可读性,使得看起来意思更直观。

val range3 = 1 ..< 10
step步进val range4 = 1..10 step 21,3,5,7,9(隔2个取值)
downTo

反向

对应方法 a.reversed(b)

val range5 = 10 downTo 110,9,8,7,6,5,4,3,2,1(倒序)
val range6 = range2.reversed()

in

!in

是否在区间里

对应方法 a.contains(b)

val boolean2 = 5 in range1

val boolean3 =  5 !in 1..10

true,5在区间里

false,5在区间里

val boolean1 = range1.contain(3)

true,3在区间里

.shuffled ()

.random ()

.average ()

.count ()

.sum ()

打乱元素的顺序,返回一个素组
随机返回一个元素的值

返回所有元素的平均值
返回区间中元素的个数
返回所有元素的和

.frist

.last
.step

返回第一个元素

返回最后一个元素
返回区间的步进值

val range = 1..10    //闭区间,包含首尾
for (i in range) print("$i,")    //遍历写法一,打印:1,2,3,4,5,6,7,8,9,10
for (i in 1..10) print("$i,")    //遍历写法二,打印:1,2,3,4,5,6,7,8,9,10
for (i in 1..10) print("1")      //类似Java的for循环,循环十次,打印:11111111111

val rangStep = 1..10 step 2 //步进2,隔2个元素取值
for (i in rangStep) print("$i,")        //遍历写法一:1,3,5,7,9
for (i in range step 2) print("$i,")    //遍历写法二:1,3,5,7,9
for (i in 1..10 step 2) print("$i,")    //遍历写法三:1,3,5,7,9

val rangeEmpty = 10..1          //区间是空的
val rangeUntil = 1 until 10     //不包含尾元素:1,2,3,4,5,6,7,8,9
val rangeDownTo = 10 downTo 1   //反向:10,9,8,7,6,5,4,3,2,1

val boolean1 = 5 in range           //true,5在区间里
val boolean2 = 5 !in 1..10          //false,5在区间里
val boolean3 = range.contains(5)    //true,5在区间里

val charRange = 'a'..'z'    //字符区间:a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z
val longRange = 1L..10L     //长整形区间:1,2,3,4,5,6,7,8,9,10
val doubleRange = 1.1..2.2  //双精度区间
val floatRange = 1.1F..2.2F //单精度区间

val a = 1
val b = 10
val range2 = a.rangeTo(b)       //1,2,3,4,5,6,7,8,9,10
val rangeDownTo2 = b.downTo(a)  //10,9,8,7,6,5,4,3,2,1

println()
println(range.first) //第一个元素:1
println(range.last) //第一个元素:10
println(range.toString())    //1..10
println(range.shuffled()) //乱序集合:[2, 9, 6, 4, 10, 7, 1, 5, 3, 8]
println(range.random()) //随机元素:8
println(range.average()) //平均值:5.5
println(range.count()) //元素个数:10
println(range.sum()) //所有元素相加的和:55
println(rangStep.step) //步进值:2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值