使用Scala,我收到此错误“值映射不是chemins.Point的成员” 点<-segment.to
这是我的代码:
package chemins
case class Point(name: String, x: Long, y: Long)
case class Segment(from: Point, to: Point) {
def distance: Double = {
math.sqrt((from.x - to.x)*(from.x - to.x) + (from.y - to.y)*(from.y - to.y))
}
}
case class Path(segments: Vector[Segment]) {
def length: Double = {
(for {
segment <- segments
} yield segment.distance).sum
}
def stops : Vector[Point] = {
for {
segment <- segments
point <- segment.to
} yield point
}
}
从我之前的搜索来看,似乎来自“ to”没有生成器,但我不知道它是否相关的事实。
谢谢!
答案 0 :(得分:3)
最有可能想要而无需查看chemins
API
for { segment <- segments } yield segment.to
或
for {
segment <- segments
point = segment.to
} yield point
尝试使用segment.to
作为生成器没有任何意义,因为它不是集合或.map
-pable实体。
还请注意,这种理解会减少为
segments.map(_.to)