如果你不是当前工作原因需要学习Scala,建议直接上手Scala 3.0 (aka
Dotty)。
对于你的问题,可以使用Scala 3.0将会引入的Union Type很好的解决:
//
scala> val m2m: PartialFunction[String|Int|Double, Char|Int] = {
| case s: String => s(0)
| case i: Int => i
| case d: Double => d.toInt
| }
val m2m: PartialFunction[String | Int | Double, Char | Int] = <function1>
scala> m2m("one")
val res0: AnyVal = o
scala> m2m(1)
val res1: AnyVal = 1
scala> m2m(Nil) // 注意:这里发生的是*编译错误*,程序会直接编译不通过
1 |m2m(Nil)
| ^^^
| Found: collection.immutable.Nil.type
| Required: String | Int | Double
【 在 elizabethxxy 的大作中提到: 】
: 关于scala的偏函数的一个疑问
: 大家好!我在学习scala的过程中,有如下疑问:
: 请问scala偏函数的输入A和输出B可以是多个数据吗?
: ...................
--
FROM 36.228.211.*