标签:foreach 拆分 mars 例子 访问 rom 方式 返回 内容
在Scala中,元组是一个包含了固定数量的元素的值,且每个元素都有自己的类型。元组是不可变的。
元组特别适用于一个方法返回多个值的场景。
一个二元元组可以按如下方式创建:
val ingredient = ("Sugar" , 25)
这个元组包含了一个 String 类型的元素和一个 Int 类型的元素。
这表示 ingredient的类型是 (String, Int) ,是 Tuple2[String, Int] 的简写。
为了表示元组,Scala中采用了一系列的类:Tuple2
,Tuple3
等,通过Tuple22
。每个类具有与元素一样多的类型参数。
一种方式访问元组元素内容是通过元素的下标。各个元素的获取可以通过 _1
, _2 等
println(ingredient._1) // Sugar println(ingredient._2) // 25
元组也可以通过模式匹配进行拆分
val (name, quantity) = ingredient println(name) // Sugar println(quantity) // 25
这里的 name 推断的类型是 String ,quantity 推断的类型是 Int。
下面是另一个模式匹配的案例:
val planets = List(("Mercury", 57.9), ("Venus", 108.2), ("Earth", 149.6), ("Mars", 227.9), ("Jupiter", 778.3)) planets.foreach{ case ("Earth", distance) => println(s"Our planet is $distance million kilometers from the sun") case _ => }
或者用for 解析:
val numPairs = List((2, 5), (3, -7), (20, 56)) for ((a, b) <- numPairs) { println(a * b) }
用户有的时候可能发现很难在case类和元组中去做一个选择。case 类是有命名的元素。这些命名可以在有些代码上增加可读性。在上面的例子中,相对于planets元组列表,我们更推荐定义一个case 类Planet(name: String, distance: Double) 列表
标签:foreach 拆分 mars 例子 访问 rom 方式 返回 内容
原文地址:https://www.cnblogs.com/zhouwenyang/p/13862622.html