我想解构下面的课程
case class Box(name: Text, value: Text) extends Product2[Text, Text] {
override def _1: Text = name
override def _2: Text = value
override def canEqual(that: Any): Boolean = ???
}
在for循环中,像这样
val boxes: List[Box] = // ...
for ((name, value) <- boxes) { /* ... */ }
我实现了该类以匹配Tuple2
的实现。我错过了什么?
答案 0 :(得分:1)
这适用于for循环:
for (Box(name, value) <- boxes) { /* ... */ }
只需添加Box
即可获得所需内容
答案 1 :(得分:1)
要构建课程,您需要define an unapply
method taking this class, normally in its companion object。通过将其声明为case class
,此方法已存在(并且您无法手动定义它)。
但是,将其作为案例类也会自动extends Product2[Text, Text]
并覆盖canEqual
(正确,而不是???
),因此您不需要这些。或_1
和_2
;那些是专门用于元组的方法。正如泽维尔的评论所说,离开,
case class Box(name: Text, value: Text)