【发布时间】:2017-10-27 22:33:22
【问题描述】:
我是一个绝对的 Scala 新手。因此,这个问题非常简单,希望有人能理解所问的内容。
在实验时,我发现我可以使用以下代码创建一个PartialFunction 实例:
val p : PartialFunction[Int, String] = {case x if x > 2 => s"x is ${x.toString}"}
我的问题:如何从函数{case x if x > 2 => s"x is ${x.toString}"} 创建一个具体的PartialFunction[Int, String]?
特别是,这个功能是如何提供两者的..
-
isDefinedAt(x: Int): Boolean方法定义
..还有..
-
apply(v1: Int): String方法定义
..一个具体的 PartialFunction[Int, String] 必须有?
在幕后,{case x if x > 2 => s"x is ${x.toString}"} 被变成了?:
val p : PartialFunction[Int, String] = new PartialFunction[Int, String] {
override def apply(v1: Int): String = {
v1 match {
case x if x > 2 => s"x is ${x.toString}"
}
}
override def isDefinedAt(x: Int): Boolean = {
x match {
case x if x > 2 => true
case _ => false
}
}
}
【问题讨论】:
-
请随意挖掘 scala api 以获取更多详细信息:scala-lang.org/api/2.12.3/scala/PartialFunction.html希望对您有所帮助
标签: scala