如何在Ada中实现Is_Empty,以及如何使用自己的判别字符串类型创建一个空字符串?

时间:2016-03-23 17:21:23

标签: string ada is-empty


我在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多种方法。谢谢你的帮助!

0 个答案:

没有答案