偏函數(shù),是一種高級的函數(shù)形式
簡單來說,偏函數(shù)是什么,其實就是沒有定義好明確的輸入?yún)?shù)的函數(shù),函數(shù)體就是一連串的case語句
一般的函數(shù)
def getStudentGrade(name: String) = {
...
}
偏函數(shù)是PartialFunction[A, B]類的一個實例
這個類有兩個方法,一個是apply()方法,直接調(diào)用可以通過函數(shù)體內(nèi)的case進(jìn)行匹配,返回結(jié)果;
另一個是isDefinedAt()方法,可以返回一個輸入,是否跟任何一個case語句匹配
學(xué)生成績查詢案例
val getStudentGrade: PartialFunction[String, Int] = {
case "Leo" => 90; case "Jack" => 85; case "Marry" => 95
}
getStudentGrade("Leo")
getStudentGrade.isDefinedAt("Tom")