Ada 将数组的切片指定给新数组

Ada 将数组的切片指定给新数组,ada,gnat,Ada,Gnat,我的语法错误,但似乎找不到关于我问题正确语法的信息页面。我正在处理一个函数,它接受一个数组,我想对该数组的一个切片进行一些计算,所以我想从传入的数组中创建一个切片数组,特别是那些索引。有人能帮我解释一下这里的语法吗?因为这个一直告诉我缺少',' 看起来您希望使用将一个数组的某些元素复制到另一个数组。因为没有一个元素是连续的,所以您可能会更好地使用、显示或使用所需的元素 p1DataBits : UnboundArray(1 .. 7) := p1(3) & p1(5) & p1

我的语法错误,但似乎找不到关于我问题正确语法的信息页面。我正在处理一个函数,它接受一个数组,我想对该数组的一个切片进行一些计算,所以我想从传入的数组中创建一个切片数组,特别是那些索引。有人能帮我解释一下这里的语法吗?因为这个一直告诉我缺少','


看起来您希望使用将一个数组的某些元素复制到另一个数组。因为没有一个元素是连续的,所以您可能会更好地使用、显示或使用所需的元素

 p1DataBits : UnboundArray(1 .. 7) := p1(3) & p1(5) & p1(7) …;

你可能误读了一段时间;在这种情况下,|符号分隔替代项,而不是表示文字。

另一种不需要昂贵连接的解决方案是分配一个直接、显式数组表达式:

procedure Odds is
  type UnboundArray is array (Integer range <>) of Integer;
  p1: UnboundArray(1 .. 15);
  p1DataBits: UnboundArray(1 .. 7);
begin
  p1DataBits := (p1(3), p1(5), p1(7), p1(9), p1(11), p1(13), p1(15));
end;
procedure Odds is
  type UnboundArray is array (Integer range <>) of Integer;
  p1: UnboundArray(1 .. 15);
  p1DataBits: UnboundArray(1 .. 7);
begin
  p1DataBits := (p1(3), p1(5), p1(7), p1(9), p1(11), p1(13), p1(15));
end;