2015-03-25 53 views
0

如何設置一個可以接受的過濾函數參數?斯卡拉是否等同於謂詞函數?

scala> val v1 = Set(1,2,3) 
v1: scala.collection.immutable.Set[Int] = Set(1, 2, 3) 

scala> val v2 = Set(2,3,4) 
v2: scala.collection.immutable.Set[Int] = Set(2, 3, 4) 

scala> v1 filter v2 
res6: scala.collection.immutable.Set[Int] = Set(2, 3) 

回答

2

scala.collection.Set[A]延伸A => Boolean - Scala中,一組是的函數。

類似地,Map[A, B]延伸A => BList[A]延伸Int => A

2

huw said it correctly:set是一個函數。

Set將其類型的每個值映射到一個布爾值,true表示「是的,我包含該值」,而false表示「不,我不知道」。

類似地,Map接受鍵類型的值並返回其值類型的值; List採用整數並返回該索引處的元素。

這不是Scala的特性,這是對Set,Map和List的含義的合理解釋。

有趣的是,Set函數的域(「合法」輸入)是該類型的所有值,而Map和List僅允許一個值的子集。