艾达:'is type access' 是什么意思?
Ada: What does 'is type access' mean?
我在作业中看到了这段代码:
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;
[...]
即使阅读了文档、wiki 等,我似乎也无法理解它(以至于我可以向祖母解释)
谁能用简单的术语解释一下 access 关键字的含义?
我对 Ada 一无所知,但谢天谢地,谷歌搜索仅需 3 秒即可得到答案:XNode
是 访问类型 Node
。 访问类型是一种允许访问另一种类型的动态分配值的类型。
也就是说,它是一个指针。但是不要将它与指针的 C 概念混淆。 Ada 指针是指针安全和内存安全的,例如,您不能向它添加 1
并让它指向不同的内存块,或者让它指向某个随机地址并声明 "this memory is now a Node
"(又名 类型转换)。
它更像是 Java、ECMAScript、Python 或 Ruby 中的对象引用。
我在作业中看到了这段代码:
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;
[...]
即使阅读了文档、wiki 等,我似乎也无法理解它(以至于我可以向祖母解释)
谁能用简单的术语解释一下 access 关键字的含义?
我对 Ada 一无所知,但谢天谢地,谷歌搜索仅需 3 秒即可得到答案:XNode
是 访问类型 Node
。 访问类型是一种允许访问另一种类型的动态分配值的类型。
也就是说,它是一个指针。但是不要将它与指针的 C 概念混淆。 Ada 指针是指针安全和内存安全的,例如,您不能向它添加 1
并让它指向不同的内存块,或者让它指向某个随机地址并声明 "this memory is now a Node
"(又名 类型转换)。
它更像是 Java、ECMAScript、Python 或 Ruby 中的对象引用。