功能定義如下:斯卡拉:PartialFunction的功能定義是PartialFunction的曖昧
trait PartialFunction[-A, +B] extends (A) ⇒ B
PartialFunction將允許我們通過使用case
與collect
上收集來過濾。 例如,當您有整數列表並且PartialFunction isEven [Int,String]時,如果集合中的值是偶數,它將轉換爲String。因此,它會返回定義中返回類型爲+B
的新集合。
我的問題是,爲什麼contravariant -A
和covariance +B
?它基本上有能力接受任何輸出的輸入。爲什麼我們需要指示輸入應該是A類型的任何類型或超類型,並且返回類型應該是B或其子類?我們不能只說:
trait PartialFunction[A, B]
順便說一下,這個函數協變/反變換的規則不僅在scala中。 –