気ままな一言
2007年07月01日
リスト 【LSL】
llGetListEntryType | リストの指定要素の型を取得する。 |
llGetListLength | リストの要素数を取得する。 |
llListInsertList | リストの指定位置へ別のリストを挿入する。 |
llDeleteSubList | リストから指定範囲の要素を削除する。 |
llListReplaceList | リストの一部を置換する。 |
llListFindList | リストから指定要素の位置を返す。 |
llList2Integer | リストから integer型の要素を取り出す。 |
llList2Float | リストから float型の要素を取り出す。 |
llList2Key | リストから key型の要素を取り出す。 |
llList2String | リストから string型の要素を取り出す。 |
llList2Rot | リストから rotation型の要素を取り出す。 |
llList2Vector | リストから vector型の要素を取り出す。 |
llCSV2List | CSV文字列をリストに変換する。 |
llList2CSV | リストを CSV文字列に変換する。 |
llList2List | リストから指定範囲の要素を取得する。 |
llListSort | リストをソートする。 |
llListRandomize | リストの要素をランダムに並び替える。 |
llList2ListStrided | リストから指定間隔の要素を抜き出す。 |
integer llGetListEntryType(list src, integer index)
src | リスト | |
index | インデックス |
リストの指定要素の型を取得します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
integer llGetListLength(list src)
src | リスト |
リストの要素数を取得します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
list llListInsertList(list dest, list src, integer start)
dest | 挿入される元となるリスト | |
src | 挿入するリスト | |
start | 挿入するインデックス |
destの指定位置へsrcを挿入した新しいリストを返します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
list llDeleteSubList(list src, integer start, integer end)
dest | 削除される元となるリスト | |
start | 開始インデックス | |
end | 終了インデックス |
srcから指定範囲の要素を削除した新しいリストを返します。
llDeleteSubList([ 0, 1, 2, 3, 4, 5 ], 1, 3); // [ 0, 4, 5 ] llDeleteSubList([ 0, 1, 2, 3, 4, 5 ], 0, -1); // [] llDeleteSubList([ 0, 1, 2, 3, 4, 5 ], 8, 2); // [ 3, 4, 5 ]
▲上へ ■LSL Portal ■LSL Portal (日本語)
list llListReplaceList(list dest, list src, integer start, integer end)
dest | 置換される元となるリスト | |
src | 置換するリスト | |
start | 開始インデックス | |
end | 終了インデックス |
destから指定範囲の要素をsrcで置換した新しいリストを返します。
llListReplaceList([ 0, 1, 2, 3, 4, 5 ], [ "a", "b", "c" ], 1, 3); // [ 0, "a", "b", "c", 4, 5 ] llListReplaceList([ 0, 1, 2, 3, 4, 5 ], [ "a", "b", "c" ], 0, -1); // [ "a", "b", "c" ] llListReplaceList([ 0, 1 ], [ "a", "b", "c" ], 10, 10); // [ 0, 1, "a", "b", "c" ]
▲上へ ■LSL Portal ■LSL Portal (日本語)
integer llListFindList(list src, list test)
src | リスト | |
test | 検索するリスト |
srcからtestの見つかったインデックス返します。
見つからなかった場合は-1を返します。
値の型及びリスト要素の順も一致する必要があります。
▲上へ ■LSL Portal ■LSL Portal (日本語)
integer llList2Integer(list src, integer index)
src | リスト | |
index | インデックス |
リストから integer型の要素を取り出します。
変換に失敗したときは0を返します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
float llList2Float(list src, integer index)
src | リスト | |
index | インデックス |
リストから float型の要素を取り出します。
変換に失敗したときは0を返します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
key llList2Key(list src, integer index)
src | リスト | |
index | インデックス |
リストから key型の要素を取り出します。
変換に失敗したときはNULL_KEYを返します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
string llList2String(list src, integer index)
src | リスト | |
index | インデックス |
リストから string型の要素を取り出します。
変換に失敗したときは""を返します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
rotation llList2Rot(list src, integer index)
src | リスト | |
index | インデックス |
リストから rotation型の要素を取り出します。
変換に失敗したときはZERO_ROTATIONを返します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
vector llList2Vector(list src, integer index)
src | リスト | |
index | インデックス |
リストから vector型の要素を取り出します。
変換に失敗したときはZERO_VECTORを返します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
list llCSV2List(string src)
src | CSV形式(カンマ区切り)文字列 |
CSV形式の文字列をリストに変換します。
llParseStringKeepNulls(src, [ "," ], []) とほぼ同様の処理が行われますが、
rotation 型や vector 型と認識できる場合は、型単位で分割されます。
(正確には '<' から '>'以降の ',' までを1つとして認識するようです)
llCSV2List("0,1,<2,3,4>,5,<6,7,8,9>"); // [ 0, 1, <2,3,4>, 5, <6,7,8,9> ] length = 5 llCSV2List("0,1,<2,3,4,5,6>7,8,9"); // [ 0, 1, <2,3,4,5,6>7, 8, 9 ] length = 5 llCSV2List("0,1,<2,3,4,5,6,7,8,9"); // [ 0, 1, <2,3,4,5,6,7,8,9 ] length = 3また、CSVの仕様とは異なりエスケープ処理は行われません。
(例えば、"," は " 2つに分割されます)
llCSV2List("\"0,1,2\",3,4"); // [ "0, 1, 2", 3, 4 ] length = 5
▲上へ ■LSL Portal ■LSL Portal (日本語)
string llList2CSV(list src)
src | リスト |
リストをCSV形式の文字列に変換します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
list llList2List(list src, integer start, integer end)
src | リスト | |
index | 開始インデックス | |
end | 終了インデックス |
リストから指定範囲の要素のリストを返します。
llList2List([ 0, 1, 2, 3, 4, 5 ], 1, 3); // [ 1, 2, 3 ]
▲上へ ■LSL Portal ■LSL Portal (日本語)
list llListSort(list src, integer stride, integer ascending)
src | リスト | |
stride | 基準となる要素の間隔(1~) | |
ascending | TRUE … 昇順 FALSE … 降順 |
srcの要素をソートした新しいリストを返します。
比較は同じ型同士のみで行われます。
// 現れた種別の順はそのまま
llListSort([ 1, "C", 3, "A", 2, "B" ], 1, TRUE); // [ 1, "A", 2, "B", 3, "C" ] llListSort([ 1, 3, 2, "C", "A", "B" ], 1, TRUE); // [ 1, 2, 3, "A", "B", "C" ] // 1, 3, 2がソート対象 llListSort([ 1, "C", 3, "A", 2, "B" ], 2, TRUE); // [ 1, "C", 2, "B", 3, "A" ]
▲上へ ■LSL Portal ■LSL Portal (日本語)
list llListRandomize(list src, integer stride)
src | リスト | |
stride | 要素順を保つ間隔(1~) |
srcの要素をランダムに並び替えた新しいリストを返します。
▲上へ ■LSL Portal ■LSL Portal (日本語)
list llList2ListStrided(list src, integer start, integer end, integer stride)
src | リスト | |
index | 開始インデックス | |
end | 終了インデックス | |
stride | 要素の間隔(1~) |
srcから指定範囲の要素を指定間隔で抜き出します。
// すべての要素を対象に3つおきに取得 llList2ListStrided([ 0, 1, 2, 3, 4, 5, 6, 7, 8 ], 0, -1, 3); // [ 0, 3, 6 ] // インデックス1~7の場合。strideはリストの先頭が基準となる。 llList2ListStrided([ 0, 1, 2, 3, 4, 5, 6, 7, 8 ], 1, 7, 3); // [ 3, 6 ]
▲上へ ■LSL Portal ■LSL Portal (日本語)
Posted by れむ at 02:49
│LSLリファレンス