Ada:如何表示java字符串?
我在Ada的一个家庭项目中需要一些提示/帮助。所以我需要做一个J_字符串包,但我真的不知道如何表示我的J_字符串类型。规范要求我:“将J_字符串类型表示为不透明的判别记录。对于字符串的内部表示,请使用标准字符串类型。判别式确定J_字符串类型中包含的字符串的大小。” 到目前为止,我的广告:Ada:如何表示java字符串?,java,string,ada,Java,String,Ada,我在Ada的一个家庭项目中需要一些提示/帮助。所以我需要做一个J_字符串包,但我真的不知道如何表示我的J_字符串类型。规范要求我:“将J_字符串类型表示为不透明的判别记录。对于字符串的内部表示,请使用标准字符串类型。判别式确定J_字符串类型中包含的字符串的大小。” 到目前为止,我的广告: package J_String_Pkg is type J_String(Size: Positive) is limited private; --methods etc priv
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参考手册()中的一个示例密切相关
需要注意的一点是:您的代码没有默认的判别式,这意味着一旦创建,您将无法更改J_字符串的大小。手臂上的例子
type Buffer(Size : Buffer_Size := 100) is
record
Pos : Buffer_Size := 0;
Value : String(1 .. Size);
end record;
允许您更改实例的大小,但代价是预先分配缓冲区大小
字符(无论如何,使用GNAT)。您确实不想用正片来做这件事;大多数计算机没有2GB的RAM可供备用