3

このように定義されたmy_list_1(構造体のリスト)があります:

struct my_struct {
    something[2] : list of int;
    something_else[2] : list of uint;
};
...
my_list_1[10] : list of my_struct;

このリストをメソッドのローカル変数にコピーする必要があります。

foo_method() is {
    var my_list_2 : list of my_struct;
    my_list_2 = deep_copy(my_list_1);
    ...
};

私が得るコンパイルエラー:

*** Error: 'my_list_1' is of type 'list of my_struct', while
expecting type 'any_struct'.
...
        my_list_2 = deep_copy(my_list_1);

deep_copy()私が試した書き込みのすべてのバリエーションでコンパイルエラーが発生しました...構造体のリストをローカル変数にコピーするにはどうすればよいですか? ご協力ありがとうございました。

4

2 に答える 2

2

deep_copy(...)を直接使用してリストをコピーすることはできません。ドキュメントを見ると、deep_copy(...)タイプの単一のパラメーターを取り、any_struct単一の構造体インスタンスを返します。for eachループで使用する必要があります。

extend sys {
  my_list_1[10] : list of my_struct;

  run() is also {
    foo_method();
  };

  foo_method() is {
    var my_list_2 : list of my_struct;

    for each (elem) in my_list_1 {
      my_list_2.add(deep_copy(elem));
    };

    print my_list_1[0], my_list_2[0];
    print my_list_1[1], my_list_2[1];
};
};
于 2014-11-19T10:37:13.523 に答える