代码之家  ›  专栏  ›  技术社区  ›  zython Hiery Nomus

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

ada
  •  0
  • zython Hiery Nomus  · 技术社区  · 7 年前

    我在作业中遇到了以下代码:

    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关键字的含义吗?

    1 回复  |  直到 7 年前
        1
  •  5
  •   Jörg W Mittag    7 年前

    我对Ada一无所知,但谢天谢地,答案只有3秒钟的谷歌搜索时间: XNode 是一个 访问类型 对于 Node 访问类型 是一种授予对另一种类型的动态分配值的访问权限的类型。

    换句话说,它是一个指针。但不要将其与指针的C概念混淆。Ada指针是指针安全和内存安全的,例如,您不能添加 1 然后让它指向另一块内存,或者让它指向某个随机地址并声明“这个内存现在是 节点 “(aka 类型铸件 ).

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