是否可以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个类- 有更好的方法吗?