BlackSheep-LSL@Wiki

llDeleteSubList

最終更新:

mizcremorne

- view
メンバー限定 登録/ログイン

llDeleteSubList

list llDeleteSubList(list src, integer start, integer end)

リストsrcのstart位置からend位置までの要素を削除した結果リストを返す。
例えば[1,2,3,4,5,6]というリストがあったとき、startに2、endに4を指定すると、2番目~4番目の要素が取り除かれたリストを返す。
 llDeleteSubList([1,2,3,4,5,6], 2, 4) → [1,2,6]
リストの先頭は0番目から数えることに注意。

start、endともに0だった場合は、0番目の要素のみが取り除かれたリストが返る。
 llDeleteSubList([1,2,3,4,5,6], 0, 0) → [2,3,4,5,6]

リストの要素数はllGetListLength関数を使って取得可能である。
要素の最大インデックスはllGetListLength - 1となる。
startに0、endに要素の最後のインデックスを指定した場合は空のリストが返る。
 llDeleteSubList(src_list, 0, llGetListLength(src_list) - 1) → []

startまたはendにマイナスの数値を指定した場合、「後ろから数えた位置」になる。
例えば-1であれば、後ろから1番目、すなわち最後の項目である。
仮にリストの中身がソートされているなら、endにマイナス値を指定してワースト3などを抜き出すことが可能となる。
 llDeleteSubList([1,2,3,4,5,6], 0, -3) → [4,5,6]

さらにややこしい話だが、startにendよりも大きい値を指定した場合、start以上、end以下の要素が削除された結果が返る。
 llDeleteSubList([1,2,3,4,5,6], 4, 1) → [3,4]

llDeleteSubList関数は引数に指定したsrcリストの中身を変更するわけではない。
あくまでも元のリストはそのままにして、結果を返すだけである。
元のリストの中身を変更したい場合は、llDeleteSubList関数の結果を元の変数に代入する必要がある。
 src = llDeleteSubList(src, 3, 6);
このようにすると、リスト型変数srcに3番目~6番目の要素を削除した結果が入る。
記事メニュー
目安箱バナー