我想獲得一個版本的Scala內置集合在特定泛型類型例如功能擴展的,擴展Scala集合
import scala.collection.immutable._
class Tuple2Set[T1,T2] extends HashSet[Tuple2[T1,T2]] {
def left = map (_._1)
def right = map (_._2)
}
然而,當我嘗試用下面的測試中使用它
new Tuple2Set[String,String]() + (("x","y")) left
我得到以下編譯錯誤
error: value left is not a member of scala.collection.immutable.HashSet[(String, String)]
我怎樣才能改變CL屁股,這樣的工作?
我是新來的Scala,有人可以解釋一下`map(_._ 1)`的意思嗎?據我所知,例如`set.map(_ + 1)`會創建一個元素增加1的新集合,但是我無法得到'_._ 1'的作用。 – Nutel 2011-01-29 23:57:20
@Vetal:`(_._ 1)`在這種情況下與'((x:Tuple [T1,T2])=> x._1)'和'_1'是'Tulple2'類中的字段相同,表示元組的第一個元素。 – tenshi 2011-01-30 00:05:23
@Easy謝謝,如果我能我會接受你的回答 – Nutel 2011-01-30 00:08:45