我想获得一个版本的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