0
点赞
收藏
分享

微信扫一扫

Groovy中的Range

丹柯yx 2022-01-25 阅读 44
groovyjava

一、基础操作

  • Range = from..to:创建一个从from到to的Range,包含from和to
  • Range = from..<to:创建一个从from到to的Range,包含from不包含to
  • Range.size():获取Range的元素个数
  • Range.get(i):获取Range索引为i的元素
  • Range[i]:获取Range索引为i的元素
  • Range.getClass():获取Range的类型
  • Range.contains(x):如果Range包含x,则返回true
  • Range.from:返回Range的from值
  • Range.getFrom():获得此范围的from值
  • Range.to:返回Range的to值
  • Range.getTo():获得此范围的to值
  • Range.isReverse():获取这个范围的反向迭代
  • Range.subList():返回此指定的fromIndex(包括)和toIndex(排除)之间的此范围部分的视图
class FirstTest{
    static void main(String[] args) {
        // 全包含的range
        def range1 = 5..8
        println range1.size()
        println range1.get(2)
        println range1[2]
        println range1.getClass()
        println range1.contains(5)
        println range1.contains(8)

        // 半开的range
        def range2 = 5..<8
        println range2.size()
        println range2.get(2)
        println range2[2]
        println range2.getClass()
        println range2.contains(5)
        println range2.contains(8)

        // 获取range的端点而不使用索引
        def range3 = 1..10
        println range3.from
        println range3.to
    }
}

二、迭代

  • for (i in Range){执行语句}
class FirstTest{
    static void main(String[] args) {
        for (i in 1..10){
            println "Hello $i"
        }
    }
}
  • Range.each{执行语句}
class FirstTest{
    static void main(String[] args) {
        (1..10).each{
            i -> println "Hello $i"
        }
    }
}
class FirstTest{
    static void main(String[] args) {
        def years = 15
        def interestRate = 0
        switch(years){
            case 1..10 : interestRate = 0.076;break;
            case 11..25 : interestRate = 0.052;break;
            default : interestRate = 0.037;
        }
        println interestRate
    }
}

举报

相关推荐

0 条评论