You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin中降序IntRange应用集合函数为何返回空列表?

Kotlin区间的默认行为与你的误区解释

这是Kotlin区间的基础特性,不是集合函数的问题:

  • Kotlin里用..创建的IntRange是递增区间,只有当起始值 ≤ 结束值时,区间才包含元素。10..1里起始值10大于结束值1,所以这个区间本身就是空的,map自然返回空列表。
  • 你想要的逆序结果,得用递减区间来实现,有两种常见写法:
    1. 用downTo函数创建递减区间:
      println((10 downTo 1).map { it * 2 }) // 输出 [20, 18, ..., 2]
      
    2. 先创建递增区间,再调用reversed()反转:
      println((1..10).reversed().map { it * 2 }) // 同样输出逆序的乘2结果
      

你的理解误区在于:集合函数确实不会随意受集合顺序影响,但前提是你操作的是一个包含元素的有效集合/区间。10..1本身不是一个有元素的区间,和集合顺序无关,是区间的定义规则导致它为空。

内容的提问来源于stack exchange,提问作者stevenl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 11:35:55