我想String
或多或少地在Ada中初始化固定长度,如下所示:
S : String (1..256) := ("Hello", others => Character'Val (0));
尝试编译时出现错误。有什么办法可以实现与上述类似的功能?
您的代码无法编译的原因是String是一个字符数组,因此等效项为
s : String(1..256) := (1 => 'H',
2 => 'e',
3 => 'l',
4 => 'l',
5=> 'o',
others => Character'Val(0));
这显然远非理想。
另一种方法是使用Ada.Strings.Fixed中的Move过程。
Move(Target => s,
Source => "Hello",
Pad => Character'Val(0));
但这不能在声明中完成。
最后,将编译:
s : String(1..256) := "Hello" & (6..256 => Character'Val(0));
但我觉得不太清楚
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句