【Scala集合】15、不可变序列Range

在这里插入图片描述

在 Scala 中,Range 是一个不可变的序列,用于表示一系列连续的整数值。Range 可以用于迭代一组整数或者在集合操作中生成一系列整数。

一、定义Range

Range 有三种定义方式:

1、使用 to 方法

val range1 = 1 to 5 // 表示从 1 到 5(包含 1 和 5),步长为 1

2、使用 until 方法

val range2 = 1 until 5 // 表示从 1 到 5(不包含 5),步长为 1

3、使用 by 方法指定步长

val range3 = 1 to 10 by 2 // 表示从 1 到 10(包含 1 和 10),步长为 2

二、Range伴生对象

Scala 的 Range 类是通过伴生对象(Companion Object)创建的,伴生对象是与类同名且在同一个源文件中定义的对象。伴生对象与类共享同一个名称空间,可以相互访问对方的私有成员。在 Scala 中,伴生对象通常用于定义类的工厂方法、静态成员以及其他与类相关的共享功能。

Range 的伴生对象可以用来创建 Range 实例,可以通过调用伴生对象的 apply 方法来创建 RangeRange 的伴生对象提供了多个重载的 apply 方法,用于不同的创建方式。

以下是使用 Range 伴生对象创建 Range 实例的示例:

// 使用伴生对象的 apply 方法创建 Range
val range1 = Range(1, 5) // 表示从 1 到 5(包含 1 和 5),步长为 1
val range2 = Range(1, 10, 2) // 表示从 1 到 10(包含 1 和 10),步长为 2

// 使用伴生对象的 from 和 to 方法创建 Range
val range3 = Range.from(1) // 表示从 1 开始的无限整数序列
val range4 = Range.to(5) // 表示从 0 到 4(包含 0 和 4),步长为 1

// 使用伴生对象的 in方法创建 Range
val range5 = Range.inclusive(1, 5) // 表示从 1 到 5(包含 1 和 5),步长为 1

// 遍历 Range 的元素
range1.foreach(println) // Output: 1 2 3 4 5
range2.foreach(println) // Output: 1 3 5 7 9
range3.take(5).foreach(println) // Output: 1 2 3 4 5
range4.foreach(println) // Output: 0 1 2 3 4
range5.foreach(println) // Output: 1 2 3 4 5

在上面的示例中,我们使用了 Range 伴生对象的不同方法来创建 Range 实例,并遍历了 Range 的元素。使用伴生对象创建 Range 实例是更加简洁和便捷的方式,尤其是在定义范围较大的整数序列时,可以避免显式地创建一个包含所有元素的集合。

三、遍历Range

在 Scala 中,有多种方式可以遍历 RangeRange 可以看作是一个整数序列,因此可以使用常见的集合操作或循环结构来遍历其中的元素。

以下是几种遍历 Range 的方式:

  1. 使用 foreach 方法:
val range = 1 to 5
range.foreach(println)
  1. 使用 for 循环:
val range = 1 to 5
for (num <- range) {
    
    
  println(num)
}

遍历 Range 可以使用 foreach 方法、for 循环或者其他常见的集合操作方法,具体使用哪种方式取决于需求和个人习惯。

猜你喜欢

转载自blog.csdn.net/m0_47256162/article/details/132159775