艾达:'is type access'是什么意思?



我在作业中遇到了这段代码:

procedure Refs is
type Node is
record
Content : Integer;
Name    : Character;
end record;
type XNode is access Node;
type NodeArray is array (Positive range 1 .. 5) of XNode;
[...]

而且即使在阅读文档、维基等之后,我似乎也无法摸索它(以至于我可以向我的祖母解释它)。

有人可以用简单的术语解释访问关键字的含义吗?

我对Ada 一无所知,但值得庆幸的是,答案只是 3 秒的谷歌搜索:XNodeNode访问类型访问类型是授予对另一种类型的动态分配值的访问权限的类型。

换句话说,它是一个指针。但不要将其与指针的 C 概念混淆。Ada 指针是指针安全和内存安全的,例如,您不能向其添加1并让它指向不同的内存,或者让它指向某个随机地址并声明"此内存现在是Node"(也称为类型转换)。

它更像是Java,ECMAScript,Python或Ruby中的对象引用

最新更新