我今天一直在问很多关于部分功能的问题。早些时候我想做这样的事情,
def partial : PartialFunction[T, T]
我想说的是,无论你给我什么类型,如果我被定义,我会给你相同的类型。显然上面的语法是无稽之谈,但它让你知道我想要做什么。
因此,当人们实施这一点时,他们被迫做了
{
case s : String = > s + "hello"
case i : Int => i + 100
}
不能做
{
case s : String => 4
case i : Int = "hello"
}
我不相信这是可能的。也许我错过了一些非常简单的东西,并且赞成那些可以向我展示光明的人。
答案 0 :(得分:2)
您可以种类进行操作,具体取决于您的使用案例:
type PartialT[T] = PartialFunction[T,T]
def something(pfn: PartialT[String]) = println("yarp")
something { case s: String => 42 }
<console>:10: error: type mismatch;
found : Int(42)
required: String
something { case s: String => 42 }
^
something { case s: String => "xxx" }
yarp