我在Ada有一个家庭项目,必须制作一个J_String包,但不能弄清楚Is_Empty方法,而且我不能用我的类型制作一个空字符串。
我有以下.ads:
package J_String_Pkg is
type J_String(Size: Positive) is private;
function Is_Empty(S : J_String) return Boolean;
private
type J_String(Size: Positive) is record
Components: String(1..Size);
end record;
和我的.adb:
function Create(Str : String) return J_String is --Just creates a J_String
Jstr: J_String(Str'Length);
begin
Jstr.Components := Str;
return Jstr;
end Create;
function Is_Empty(S : J_String) return Boolean is
--returns true if and only if length is 0
begin
return S.Components'Length = 0;
end Is_Empty;
我使用它的方式:
jstr1: J_String(5) := Create("apple");
--tried empty string as:
jstr2: J_String := Create("");
我的判断力是正面的atm,我在我的记录中尝试过Integer和String(0..Size),但它没有工作我得到constraint_errors。如果没有任何彻底的改变可以解决这个问题,我会很高兴,因为除了这一个,我已经完成了几乎所有必须实现的20多种方法。谢谢你的帮助!