4.7 Scala集合:Range和Tuple

Range

Range定义一个范围,指定开始、结束和步长,通常用于填充数据结构和遍历for循环。

object RangeDemo {
def main(args: Array[String]): Unit = {
  // 使用方法to来创建Range(包含上限)
  for(n <- 1 to 5){
    println(n)
  }

  println("\n----------------------------")
  // 使用方法util来创建Range(不包含上限)
  for(n <- 1 until 5){
    println(n)
  }

  println("\n----------------------------")
  // 还可以指定步长
  for(n <- 1 to 21 by 4){
    println(n)
  }

  println("\n----------------------------")
  for(n <- 1 until 21 by 4){
    println(n)
  }

  println("\n----------------------------")
  for(n <- 'a' to 'c'){
    println(n)
  }

  println("\n----------------------------")
  // 读取值
  val r = 1 to 5
  // val r = 1.to(5)     // 等价
  println(r(0),r(1),r(2),r(3),r(4))

  println("\n----------------------------")
  // 使用Range创建一个连续序列
  val x = (1 to 10).toList
  x.foreach(println)
}
}

Tuple

一个tuple(元组)是一个容器,用来存储两个或多个不同类型的元素。元组与List类似,大小和值不可变,它在创建以后不能被修改,但可以容纳不同数据类型。

可以通过两种方式创建元组:

  • 通过编写由一对括号包围的、包含用逗号分开的值;

  • 通过使用关系操作符(->);

例如:

val tuple = (1, false, "Scala")
println(s"${tuple._1}, ${tuple._2}, ${tuple._3}")

val tuple2 ="title" -> "Scala从入门到精通"
println(s"${tuple2._1}, ${tuple2._2}")

元组在我们想要将一组不相关的元素组织在一起时很有用。如果这些元素是相同类型,可以使用集合,比如数组或列表。如果元素是不同类型,但是是相关的,在这种情况下,元组可能更合适。

元组是不可迭代的,其目的只是作为能容纳多个值的容器。但在一个元组中的元素有一个基于1 的索引,可以通过索引访问元组中的元素。

下面的代码演示了访问元组中元素的语法:

val twoElements = ("10", true);
val threeElements = ("10", "harry", true);

val first = threeElements._1
val second = threeElements._2
val third = threeElements._3

下面的示例代码演示了元组的使用:

// 元组:容器,可以容纳多个不同类型的元素,不可改变,不可以迭代
// 主要应用场景:作为数据容器,在函数中做为返回值,可以一次返回多个值

val t1 = ("aa",3,3.45,true,'c')

// 获取其中的元素:基于1的位置索引
t1._1
t1._2
t1._3
t1._4
t1._5

println("----------")
val (a,b,c,d,e) = t1
a
b
c
d
e
© 版权声明
THE END
喜欢就支持一下吧
点赞181赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

夸夸
夸夸
还有吗!没看够!
取消
昵称表情代码图片

    暂无评论内容