我有一個情況下,我想用isDefinedAt
來檢查部分函數是否接受類型,而不是一個特定的值。檢查接受的類型,而不是價值,與isDefinedAt
val test: PartialFunction[Any, Unit] = {
case y: Int => ???
case ComplexThing(x, y, z) => ???
}
在這裏,你可以不喜歡test isDefinedAt 1
檢查驗收該值,但是,我真正想要做的是檢查驗收所有Int
S的(更具體地說,在我來說,我要的類型檢查是很難初始化的(它有很多的依賴),所以我真的想避免創建一個實例如果可能的話 - 目前我只是使用null
s,這感覺很難看)。遺憾的是,沒有test.isDefinedAt[Int]
。
我不擔心它只接受這種類型的一些實例 - 我只想知道這種類型是否被接受是完全不可能的。
除非我誤會,否則這將需要複製有關'PartialFunction'接受的所有信息? –
是的,儘管您可以完全拋棄'PartialFunction',並將另一種方法添加到執行計算的類型類中。 – wingedsubmariner
+1,這可能是某些人的解決方案,但由於我的情況,它不適合我的需要(使用PartialFunction由外部API規定,目標是測試PartialFunction,所以複製這些信息會使其毫無意義)。我認爲對我來說,答案就是它不可能以我想要的方式。 –