Ada:如何表示java字符串?

时间:2016-03-21 10:13:48

标签: java string ada

我需要一些提示/帮助我在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;

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

你需要这样的东西:

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

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

需要注意的一点是:您的代码(没有判别标准的默认值)意味着一旦创建,您将无法更改Size的{​​{1}}。来自ARM的例子,

J_String

允许您更改实例的大小,代价是预先分配type Buffer(Size : Buffer_Size := 100) is record Pos : Buffer_Size := 0; Value : String(1 .. Size); end record; 个字符(无论如何,使用GNAT)。您希望使用Buffer_Size执行此操作;大多数计算机没有2千兆字节的RAM!