如何在Scala中对多种类型执行模式匹配?
我希望实现以下类似的模式,其中模式匹配a和b的类型,并执行类型组合的代码。
def equals[T](a: T, b: T) = {
(a,b) match {
case (a,b) : (String, String) = isEquals(a.asInstanceOf[String],b.asInstanceOf[String])
case (a,b) : (Int, Int) = isEquals(a.asInstanceOf[Int],b.asInstanceOf[Int])
}
}
答案 0 :(得分:2)
您非常亲密:
def equals[T](a: T, b: T) =
(a, b) match {
case (a: String, b: String) => println(s"Strings: $a $b")
case (a: Int, b: Int) => println(s"Ints: $a $b")
case _ => println("Not sure what")
}
equals("foo", "bar") // Strings: foo bar
equals(12, 34) // Ints: 12 34
equals(true, false) // Not sure what