1.Scala有哪几种常用的模式匹配用法?请举例说明。
时间: 2024-05-05 08:16:04 浏览: 6
Scala常用的模式匹配用法包括:
1. 值匹配模式:根据变量的值进行匹配,可以匹配基本数据类型和字符串等。例如:
```
val x = 2
x match {
case 1 => println("one")
case 2 => println("two")
case _ => println("many")
}
```
2. 类型匹配模式:根据变量的类型进行匹配,可以匹配各种类型。例如:
```
def checkType(x: Any): String = x match {
case s: String => "String"
case i: Int => "Int"
case b: Boolean => "Boolean"
case _ => "Unknown type"
}
```
3. 构造函数匹配模式:根据对象的构造函数进行匹配,可以匹配自定义的类。例如:
```
case class Person(name: String, age: Int)
val p = Person("Alice", 25)
p match {
case Person("Alice", age) => println(s"Alice's age is $age")
case Person(name, age) => println(s"$name's age is $age")
}
```
4. 变量绑定模式:使用@符号将匹配的值绑定到一个变量上。例如:
```
val lst = List(1, 2, 3)
lst match {
case List(_, b @ 2, _) => println(s"Second element is $b")
case _ => println("Not matched")
}
```
其中,`b @ 2`表示将匹配到的值绑定到变量b上,即第二个元素等于2。