インタフェースMemoryLayout.PathElement
- 含まれているインタフェース:
MemoryLayout
public static sealed interface MemoryLayout.PathElement
「レイアウト・パス」内の要素。 パス要素には次の3種類があります:
- 「グループ・パスの要素」。名前または索引によって、
GroupLayout内のメンバー・レイアウトを選択するために使用します。 - 「順序パスの要素」。
SequenceLayout内で1つ以上の順序要素のレイアウトを選択するために使用します。 - 「パス要素を間接参照」。アドレス・レイアウトをターゲット・レイアウトとして「参照解除」するために使用されます。
- 実装要件:
- このインタフェースの実装は不変、スレッド・セーフ、およびvalue-basedです。
- 導入されたバージョン:
- 22
-
メソッドのサマリー
静的メソッド修飾子と型メソッド説明static MemoryLayout.PathElementアドレス・レイアウト(場所セット)の「ターゲット・レイアウト」を選択するパス要素を返します。static MemoryLayout.PathElementgroupElement(long index) グループ・レイアウト内の指定された索引を持つメンバー・レイアウトを選択するパス要素を返します。static MemoryLayout.PathElementgroupElement(String name) グループ・レイアウト内で指定された名前のメンバー・レイアウトを選択するパス要素を返します。static MemoryLayout.PathElementシーケンス・レイアウトで未指定の要素レイアウトを選択する「オープン・パス要素」を返します。static MemoryLayout.PathElementsequenceElement(long index) シーケンス・レイアウトで指定した索引の要素レイアウトを選択するパス要素を返します。static MemoryLayout.PathElementsequenceElement(long start, long step) シーケンス・レイアウト内の位置の「範囲」内の要素レイアウトを選択する「オープン・パス要素」を返します。
-
メソッドの詳細
-
groupElement
static MemoryLayout.PathElement groupElement(String name) グループ・レイアウト内で指定された名前のメンバー・レイアウトを選択するパス要素を返します。- 実装要件:
- 一致する名前を持つ複数のグループ要素が存在する場合は、このメソッドによって返されるパス要素が最初の要素を選択します。つまり、現在のパスから最も低いオフセットを持つグループ要素が選択されます。 このような場合は、
groupElement(long)を使用することをお勧めします。 - パラメータ:
name- 選択するメンバー・レイアウトの名前- 戻り値:
- グループ・レイアウト内の指定された名前のメンバー・レイアウトを選択するパス要素
-
groupElement
static MemoryLayout.PathElement groupElement(long index) グループ・レイアウト内の指定された索引を持つメンバー・レイアウトを選択するパス要素を返します。- パラメータ:
index- 選択するメンバー・レイアウト要素の索引- 戻り値:
- グループ・レイアウト内の指定された索引を持つメンバー・レイアウトを選択するパス要素
- スロー:
IllegalArgumentException-index < 0の場合
-
sequenceElement
static MemoryLayout.PathElement sequenceElement(long index) シーケンス・レイアウトで指定した索引の要素レイアウトを選択するパス要素を返します。- パラメータ:
index- 選択する順序要素の索引- 戻り値:
- 順序レイアウトで指定した索引の要素レイアウトを選択するパス要素
- スロー:
IllegalArgumentException-index < 0の場合
-
sequenceElement
static MemoryLayout.PathElement sequenceElement(long start, long step) シーケンス・レイアウト内の位置の「範囲」内の要素レイアウトを選択する「オープン・パス要素」を返します。 範囲は、開始索引(包含)Sとステップ係数(負の値を指定することもできます)Fのペアとして表されます。このレイアウトで選択された正確な順序要素は、索引
Iとして表されます。Cが順序要素の数である場合、0 <= I < Bに従います。ここで、Bは次のように計算されます:F > 0の場合、B = ceilDiv(C - S, F)F < 0の場合、B = ceilDiv(S + 1, -F)
Bです。- パラメータ:
start- 選択する最初のシーケンス要素の索引step- サブシーケンス・ファクタが選択されるステップ係数- 戻り値:
- 指定された索引で順序要素のレイアウトを選択するパス要素。
- スロー:
IllegalArgumentException-start < 0またはstep == 0の場合
-
sequenceElement
static MemoryLayout.PathElement sequenceElement()シーケンス・レイアウトで未指定の要素レイアウトを選択する「オープン・パス要素」を返します。このレイアウトで選択された正確な順序要素は、索引
Iとして表されます。Cがシーケンス要素数の場合、0 <= I < Cに従います。 つまり、Cは、返されるオープン・パス要素のサイズです。- 戻り値:
- 順序レイアウトで未指定の要素レイアウトを選択する「オープン・パス要素」
-
dereferenceElement
static MemoryLayout.PathElement dereferenceElement()アドレス・レイアウト(場所セット)の「ターゲット・レイアウト」を選択するパス要素を返します。- 戻り値:
- アドレス・レイアウト(場所セット)の「ターゲット・レイアウト」を選択するパス要素
-