如何在Ada中添加向量

问题描述

我有一个表示坐标的(x,y,x)形式的向量。我希望能够做类似(x,y,z)+(x2,y2,z2)的事情来产生一组新的坐标。 Ada说它不能对复合类型使用'+',但是肯定有一种方法可以做到这一点?

解决方法

如果有

type Vector is record
   X : Float;
   Y : Float;
   Z : Float;
end record;

您可以将+定义为

function "+" (L,R : Vector) return Vector is
  (L.X + R.X,L.Y + R.Y,L.Z + R.Z);

在定义-时要特别小心,以至于始终使用-!该错误很难被发现。

,

如果将向量定义为包含浮点类型的元素,则可以使用通用包Ada.Numerics.Generic_Real_Arrays。此软件包在Ada语言参考手册的G.3.1部分中进行了描述。

如果要定义向量以包含复数类型的元素,则可以使用G.3.2 复杂向量和矩阵

中描述的通用包。

如果希望使用整数类型作为矢量分量,则可以为整数矢量类型编写“ +”函数。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...