Ada:如何表示java字符串



我需要一些关于我在 Ada 的一个家庭项目的提示/帮助。所以我需要做一个J_String_Package,但我真的不知道如何表示我的J_string类型。规范要求我:"将J_String类型表示为不透明的判别记录。对于字符串的内部表示形式,请使用标准字符串类型。判别器确定 J_String 类型中包含的字符串的大小。到目前为止,我的.ads:

package J_String_Pkg is
    type J_String(Size: Positive) is limited private;
   --methods etc    
private
    type J_String(Size: Positive) is record
        --i need some help here!! :)
    end record;
end J_String_Pkg;

感谢您的帮助!

你需要这样的东西:

type J_String(Size: Positive) is record
   Contents : String (1 .. Size);
end record;

这与 Ada 参考手册 (ARM 3.7(33)) 中的一个示例非常吻合。

需要注意的一件事:您的代码没有判别式的默认值,这意味着一旦创建,您将无法更改J_StringSize。来自 ARM 的示例,

type Buffer(Size : Buffer_Size := 100)  is
   record
      Pos   : Buffer_Size := 0;
      Value : String(1 .. Size);
   end record;

允许您更改实例的大小,但代价是预分配Buffer_Size字符(无论如何,使用 GNAT)。你不想用Positive这样做;大多数计算机没有 2 GB 的 RAM 可用!

最新更新