Объединение ассоциативных массивов - PullRequest
1 голос
/ 02 марта 2020

Если у меня есть два ассоциативных массива, есть ли способ использовать что-то вроде оператора конкатенации для их объединения? Я попробовал это, и это не работает:

module tb;
  initial begin
    int a[int] = '{1:1, 2:2};
    int b[int] = '{3:3, 4:4};
    $display("a = ", a);
    $display("b = ", b);
    b = {a,b};
    $display("b = ", b);
  end
endmodule

Я знаю, что могу перебрать его и назначить, но я по сути ищу однострочник, если это выполнимо. Я не смог ничего найти в LRM.

1 Ответ

3 голосов
/ 03 марта 2020

Нет, LRM специально исключает ассоциативные массивы из конкатенации массивов (раздел 10.10).

Цель любого другого типа (включая ассоциативный массив) должна быть недопустимой.

Также запрещено использовать любой вид кастинга. У вас будет foreach l oop.

...