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

Scala中是否存在可返回Range类型上界的内置函数?

Scala Range获取上界的简洁方案

你完全不需要调用max方法实现需求,max是通用集合方法,需要遍历整个Range计算结果,对于大跨度Range性能很差。Scala的Range类本身内置了O(1)时间复杂度的边界获取属性:

  • 如果你需要获取Range定义时的右边界值(不区分to/until生成的区间),直接使用end属性:
    val closedRange = 1 to 10
    println(closedRange.end) // 输出10
    
    val openRange = 1 until 10
    println(openRange.end) // 输出10
    
  • 如果你需要获取Range实际包含的最大元素,和你示例中range.max的效果完全一致,直接使用last属性即可:
    val range = 1 to 10
    val upper = range.last // upper: Int = 10,完全符合你的预期效果
    
    // 对于左闭右开的until生成的Range也能正确返回实际最大值
    val range2 = 1 until 10
    println(range2.last) // 输出9
    

以上属性对带步长的Range同样适用:

val stepRange = 1 to 10 by 3
println(stepRange.end) // 10
println(stepRange.last) // 7

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 04:45:09