Ada:“类型访问”是什么意思?

zyt*_*hon 0 ada

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

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;

[...]
Run Code Online (Sandbox Code Playgroud)

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

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

Jör*_*tag 5

我什么都不知道Ada的,但幸运的是,答案是只有3远离谷歌搜索秒:XNode是的访问类型Node。的接入类型是授权访问另一种类型的动态分配的值的类型。

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

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