相关疑难解决方法(0)

Scala - 在编译时强制执行Vector的大小

是否可以Vector在编译时强制传入方法的大小?我想使用空间中的一组点来模拟一个n维欧几里德空间,这些点看起来像这样(这就是我现在所拥有的):

case class EuclideanPoint(coordinates: Vector[Double]) {
  def distanceTo(desination: EuclieanPoint): Double = ???
}
Run Code Online (Sandbox Code Playgroud)

如果我有一个通过创建的坐标EuclideanPoint(Vector(1, 0, 0)),它是一个3D欧几里德点.鉴于此,我想确保调用中传递的目标点具有distanceTo相同的维度.

我知道我可以通过使用Tuple1to 来做到这一点Tuple22,但我想代表许多不同的几何空间,如果我用Tuples 做的话,我会为每个空间写22个类- 有更好的方法吗?

type-systems scala tuples compile-time

11
推荐指数
1
解决办法
823
查看次数

标签 统计

compile-time ×1

scala ×1

tuples ×1

type-systems ×1