05. 汎用メソッド
どのタイプの配列にも適用できる(らしい)メソッド一覧とサンプルを示します。各説明は、以下の配列定義を前提として記します。例は、SystemVerilog_3.1a.pdfの内容をベースに独自に味付けしています。
なお、以下に例にある ... with ( xxx ) のxxxは、表記が制約に似ているようで異なります。よって、... with ( x > 1; x < 5; ) のような表記は使えません。注意してください。その代わり、functionは使えましたので、必要のある方はfunctioinで条件処理をしてください。
string SA[5], qs[$]; // qsはstring型のqueueint IA[5], qi[$]; // qiはint型のqueueSA[0] = "aiueo";SA[1] = "ppp";SA[2] = "kkk";SA[3] = "hoge";SA[4] = "vita";IA[0] = 0; :IA[4] = 4;- find():条件にヒットしたデータをすべて取得します
- qi = IA.find(x) with (x > 2); // 2より大きいものすべて
- qi = IA.find(x) with (x > 2 && x < 5); // if 文の条件に書けるものならOKみたい
- qi = IA.find(x) with (func(x)); // func(x)がtrueのもの
- qs = SA.find(x) with (x == "vita"); // vita
- qs = SA.find(x) with (x inside {"hoge", "vita"};
- ※上記のように明示的なstring配列に対してfindするのは馬鹿げていますが…
- find_index():条件にヒットしたデータのindex番号を取得します
- qi = IA.find_index with (item > 2);
- ※index検索では、条件は"item"という名前に対して与えます
- find_first():条件にヒットした最初のアイテムを取得します
- find_first_index():条件にヒットした最初のアイテムの格納されたindexを取得します
- find_last():条件にヒットした最後のアイテムを取得します
- find_last_index():条件にヒットした最後のアイテムの格納されたindexを取得します
- max:最大値を取得します
- qi = IA.max();
- min:最小値を取得します
- qi = IA.min();
- unique:重複したアイテムを除いた配列を返します
- qi = IA.unique();
- unique_index:重複したアイテムを除いた配列のインデックス番号を取得します
- qi = IA.unique_index();