Dan*_*Dan 2 string ada bounded-types
我想String在Ada中初始化一个固定长度或多或少如下:
S : String (1..256) := ("Hello", others => Character'Val (0));
Run Code Online (Sandbox Code Playgroud)
我在尝试编译时遇到错误.有没有办法实现类似于上面的东西?
您的代码无法编译的原因是String是一个Character数组,因此等效
s : String(1..256) := (1 => 'H',
2 => 'e',
3 => 'l',
4 => 'l',
5=> 'o',
others => Character'Val(0));
Run Code Online (Sandbox Code Playgroud)
这显然远非理想.
另一种方法是在Ada.Strings.Fixed中使用Move过程.
Move(Target => s,
Source => "Hello",
Pad => Character'Val(0));
Run Code Online (Sandbox Code Playgroud)
但这不能在声明中完成.
最后,这编译:
s : String(1..256) := "Hello" & (6..256 => Character'Val(0));
Run Code Online (Sandbox Code Playgroud)
但我发现它不太清楚