考慮以下類型定義:隱式轉換在Scala中如何工作?
type Set = Int => Boolean
我可以聲明返回一組兩種方式
def singletonSet(elem: Int): Set =
value => value == elem
或
def singletonSet(elem: Int): Set =
Set(elem)
第二個定義的函數使用Set從斯卡拉標準庫而不是聲明的類型,但Scala如何隱式轉換爲聲明的類型Set?隱含的轉換對我來說似乎很奇怪。
爲了闡明第二個定義,我在下面的有效代碼改變類型的名稱:
type SetX = Int => Boolean
def singletonSet(elem: Int): SetX =
Set(elem)