前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >(1) - Range

(1) - Range

作者头像
codingforfun
发布2018-08-24 14:57:02
4840
发布2018-08-24 14:57:02
举报
文章被收录于专栏:牛肉圆粉不加葱

Range 是 Scala 中一个常用的特性,具有以下特点:

  • 支持 to 及 until,to 包含边界上限,until 不包含边界上限(两者均包含边界下限)
  • 支持 Int、Long、Float、Double、Char、BigInt、BigDecimal
  • 支持自定义步长及默认步长

接下来我们通过几个例子来加深对这几个特性的印象

支持 to 及 until

代码语言:javascript
复制
scala> 1 to 10
res2: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

scala> 1 until 10
res3: scala.collection.immutable.Range = Range(1, 2, 3, 4, 5, 6, 7, 8, 9)

支持多种数据类型

Int

代码语言:javascript
复制
scala> 1 to 5
res11: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5)

scala> 1 to 5 by 2
res12: scala.collection.immutable.Range = Range(1, 3, 5)

scala> 1 to 5 by 3
res13: scala.collection.immutable.Range = Range(1, 4)

Long

代码语言:javascript
复制
scala> 1L to 5L
res14: scala.collection.immutable.NumericRange.Inclusive[Long] = NumericRange(1, 2, 3, 4, 5)

scala> 1L to 5L by 2
res15: scala.collection.immutable.NumericRange[Long] = NumericRange(1, 3, 5)

scala> 1L to 5L by 2L
res16: scala.collection.immutable.NumericRange[Long] = NumericRange(1, 3, 5)

scala> 1L to 5L by 3L
res17: scala.collection.immutable.NumericRange[Long] = NumericRange(1, 4)

Float

代码语言:javascript
复制
scala> 1.0F to 5.0F by 1.0F
res9: scala.collection.immutable.NumericRange[Float] = NumericRange(1.0, 2.0, 3.0, 4.0, 5.0)

scala> 1.0F to 5.0F by 1.3F
res10: scala.collection.immutable.NumericRange[Float] = NumericRange(1.0, 2.3, 3.6, 4.8999996)

Double

代码语言:javascript
复制
scala> 1.0D to 5.0D by 1.0D
res24: scala.collection.immutable.NumericRange[Double] = NumericRange(1.0, 2.0, 3.0, 4.0, 5.0)

scala> 1.0D to 5.0D by 1.3D
res25: scala.collection.immutable.NumericRange[Double] = NumericRange(1.0, 2.3, 3.5999999999999996, 4.8999999999999995)

Char

代码语言:javascript
复制
scala> 'a' to 'e' by 1
res26: scala.collection.immutable.NumericRange[Char] = NumericRange(a, b, c, d, e)

scala> 'a' to 'e' by 2
res27: scala.collection.immutable.NumericRange[Char] = NumericRange(a, c, e)

BigInt

代码语言:javascript
复制
scala> BigInt(1) to BigInt(5)
res36: scala.collection.immutable.NumericRange.Inclusive[BigInt] = NumericRange(1, 2, 3, 4, 5)

scala> BigInt(1) to BigInt(5) by 2
res38: scala.collection.immutable.NumericRange[BigInt] = NumericRange(1, 3, 5)

BigDecimal

代码语言:javascript
复制
scala> BigDecimal(1.1) to BigDecimal(5.6) by 1.3
res41: scala.collection.immutable.NumericRange.Inclusive[scala.math.BigDecimal] = NumericRange(1.1, 2.4, 3.7, 5.0)

scala> BigDecimal(1.1) to BigDecimal(5.6) by 3.3
res42: scala.collection.immutable.NumericRange.Inclusive[scala.math.BigDecimal] = NumericRange(1.1, 4.4)

支持自定义步长及默认步长

在上一小节的很多例子中,都用 by 指定了自定义步长,所有的类型都支持指定自定义步长。但并不是所有的类型都有默认步长,只有以下类型具有默认步长:

  • Int默认步长: 1
  • Long默认步长: 1
  • Char默认步长: 1
  • BigInt默认步长: 1

**传送门: **Scala 在简书目录


本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016.05.19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 支持 to 及 until
  • 支持多种数据类型
    • Int
      • Long
        • Float
          • Double
            • Char
              • BigInt
                • BigDecimal
                  • 支持自定义步长及默认步长
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档