基本
case后面值要和调用模式匹配的元祖对上
val t: Any = ("lisi", 20)
t match {
case (name, age) => println(name)
}
输出
lisi
匹配类型: 元祖的第一个值必须是Sting类型的才匹配,否则不匹配
val t: Any = ("lisi", 20)
t match {
case (name: String, age) => println(name)
}
匹配元祖里面的值
下面两种方式效果是一样的,建议用方式1
方式1
object Pattern1 {
def main(args: Array[String]): Unit = {
val (a, b): (Int, String) = foo()
println(a)
println(b)
}
//返回一个元祖
def foo() = (10, "lisi")
}
方式2:
object Pattern1 {
def main(args: Array[String]): Unit = {
val a: (Int, String) = foo()
println(a._1)
println(a._2)
}
//返回一个元祖
def foo() = (10, "lisi")
}
取List里面的元组
val list = List((1, 2), (10, 20), (100, 200))
for (kv <- list) {
println(kv._1 + "--" + kv._2)
}
输出:
1—2
10—20
100—200