LlListFindStrided/ja
Jump to navigation
Jump to search
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
要約
関数: integer llListFindStrided( list src, list test, integer start, integer end, integer stride );testが条件に一致するsrc内の最初のインスタンスのインデックス。を integer で返します。
• list | src | – | 検索対象(ヘイスタック) | |
• list | test | – | 検索する内容(ニードル) | |
• integer | start | – | 検索範囲の開始 | |
• integer | end | – | 検索範囲の終了 | |
• integer | stride | – | src内のストライドごとのエントリ数 |
testがsrc内で範囲とストライドの条件に一致しない場合、-1が返されます。
testの長さは、一致を生成するためにstrideと等しいかそれ以下である必要があります。
リスト内の最初のエントリのインデックスは0です。
testがsrcの最後のインデックスで見つかった場合、正のインデックスが返されます(5つのエントリの5番目は4を返します)。
もしstartまたはendが負の場合、それはリストの末尾から数えられます。リスト内の最後の要素は-1で、最初の要素は-list_lengthです。
警告
- 厳格な型一致と大文字小文字の区別が適用されます。
- "1" != 1
- "1.0" != 1.0
- 1 != 1.0
- "a822ff2b-ff02-461d-b45d-dcd10a2de0c2" != (key)"a822ff2b-ff02-461d-b45d-dcd10a2de0c2"
- "Justice" != "justice"
- もしtestが空リストである場合、返される値は0であり、-1ではありません。
サンプル
list mylist = ["a",0,"b",1,"c",2,"b",1];
integer result_a = llListFindStrided(mylist, ["b"], 0, -1, 1); //Stride 1 full range functionally equivalent to llListFindList(mylist,"b");
//result_a = 2
integer result_b = llListFindStrided(mylist, ["b",1], 2, -1, 1); //Inclusive range for start and end will find 2nd list in list
//result_b = 2
integer result_e = llListFindStrided(mylist, ["b"], 3, -1, 1); //The first "b" is at index 2 and will be skipped by starting at 3
//result_c = 6
integer result_d = llListFindStrided(mylist, ["b",1], 2, -1, 1); //Inclusive range for start and end will find 2nd item in list
//result_d = 2
integer result_e = llListFindStrided(mylist, ["b",1], 3, -1, 1); //The first "b",1 series is at index 2 and will be skipped by starting at 3
//result_e = 6
integer result_f = llListFindStrided(mylist, ["b",1], 3, -2, 1); //The first "b",1 series is at index 2 and will be skipped by starting at 3. The second ["b",1] set exceeds the range criteria of the search.
//result_f = -1
integer result_g = llListFindStrided(mylist, ["b",2], 0, -1, 1); //No consecutive elements match ["b",2]
//result_g = -1
integer result_h = llListFindStrided(mylist, ["c"], 0, -1, 2); //With a stride of 2, "c" will be found.
//result_h = 4
integer result_i = llListFindStrided(mylist, ["c"], 0, -1, 3); //With a stride of 3, "c" won't be found.
//result_i = -1
integer result_j = llListFindStrided(mylist, ["c"], 0, -1, 4); //With a stride of 4, "c" will be found.
//result_j = 4
integer result_k = llListFindStrided(mylist, ["c"], 1, -1, 2); //While the stride is even, starting at the 2nd element will miss this stride.
//result_k = -1
list numbers = [1, 2, 3, 4, 5];
default
{
state_entry()
{
integer index = llListFindStrided(numbers, [3], 0, -1, 1); //Functionally identical to llListFindList(numbers, [3]);
if (index != -1)
{
list three_four = llList2List(numbers, index, index + 1);
llOwnerSay(llDumpList2String(three_four, ","));
// Object: 3,4
}
}
}
//You can also search for two items at once to find a pattern in a list
list avatarsWhoFoundMagicLeaves = ["Water Duck", "Green Ham", "Fire Centaur","Red Leaf"];
default
{
state_entry()
{
integer index = llListFindStrided(avatarsWhoFoundMagicLeaves, ["Fire Centaur","Red Leaf"],0,-1,2);
if (index != -1)
{
list output = llList2List(avatarsWhoFoundMagicLeaves, index, index + 1);
llOwnerSay(llDumpList2String(output, ","));
// Object: Fire Centaur, Red Leaf
}
}
}
//It's nearly a database
list food_db = ["FIRSTNAME", "LASTNAME", "FAVORITE FOOD", "ALLERGIES",
"Awesome", "Resident","Apples",0,
"Charlie", "Kites", "Peanuts", "dogs",
"Cool", "McLastname", "Burgers","peanuts"];
default
{
state_entry()
{
list potential_allergen = ["peanuts"];
integer any_allergies = llListFindStrided(food_db, potential_allergen,4,-1,4);
if (any_allergies != -1)
{
llOwnerSay("Every can eat it");
}
else
{
list output = llList2List(food_db, any_allergens - 3, any_allergens - 2);
llOwnerSay(llDumpList2String(output, " ")+" is allergic to it!");
// Object: Cool McLastName is allergic to peanuts
}
}
}
関連項目
関数
• | llSubStringIndex/ja | – | 他の文字列内の文字列を検索する |
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。