相关疑难解决方法(0)

scala self-type:value不是成员错误

这是这个问题的后续内容.

我正在尝试使用自我类型在通用超类中实现scala中的向量:

trait Vec[V] { self:V =>
  def /(d:Double):Vec[V] 
  def dot(v:V):Double

  def norm:Double = math.sqrt(this dot this)
  def normalize = self / norm
}
Run Code Online (Sandbox Code Playgroud)

这是3D矢量的实现:

class Vec3(val x:Double, val y:Double, val z:Double) extends Vec[Vec3]
{
  def /(d:Double) = new Vec3(x / d, y / d, z / d)
  def dot(v:Vec3) = x * v.x + y * v.y + z * v.z 
  def cross(v:Vec3):Vec3 = 
  {
      val (a, b, c) = (v.x, v.y, v.z)
      new Vec3(c * y …
Run Code Online (Sandbox Code Playgroud)

scala self-type

0
推荐指数
1
解决办法
3791
查看次数

标签 统计

scala ×1

self-type ×1