首页 > 解决方案 > 将数组的切片分配给新数组

问题描述

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

p1: UnboundArray(1 .. 15);
p1DataBits: UnboundArray(1 .. 7);
begin
    p1DataBits := (p1(3 | 5 | 7 | 9 | 11 | 13 | 15));
end;

标签: adagnat

解决方案


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

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;

推荐阅读