llListFindListNext
integer llListFindListNext(list src,// List to search within.list test,// List elements to search for.integer instance// Zero-based occurrence index of the match to find.
);- Returns
integer- Energy
- 10
If test is not found in src, -1 (in LSL) or nil (in SLua) is returned.
The index of the first entry in the list is 0
An expansion of llListFindList which adds an instance parameter to select the nth match to test parameter.
llListFindListNext(src, test, 0); is functionally equivalent to llListFindList(src, test);
Given a list like [ ‘Resident’, ‘Alexia’, ‘Resident’, ‘Bob’, ‘Resident’, ‘Steve’, ‘Resident’, ‘Evil’ ]
using a test of [ ‘Resident’ ] and an instance of 0, 1, 2, 3 would return indices of 0, 2, 4, and 6 respectively.
Selecting the 4th or greater instance will not be found and will return -1.
Reverse indexing is also supported. Using an instance of -1, -2, -3, -4 would respectively return 6, 4, 2, 0
And -5 and lower would again return -1
If test is found at the last index in src the positive index is returned (5th entry of 5 returns 4).
integer result = llListFindListNext([], [], 0);Caveats
Section titled “Caveats”- Strict type matching and case sensitivity is enforced.
- “1” != 1
- “1.0” != 1.0
- 1 != 1.0
- “a822ff2b-ff02-461d-b45d-dcd10a2de0c2” != (key)“a822ff2b-ff02-461d-b45d-dcd10a2de0c2”
- “Justice” != “justice”
- If test is an
empty listthe value returned is0rather than -1.
Examples
Section titled “Examples”Example 1
default{ touch_end(integer i) { list myList = []; list toFind = []; llSay(0, "both lists empty (expect '0', early abort): " + (string)llListFindListNext(myList, toFind, 0));
myList = [1,2]; //Consistent with behavior of llListFindList llSay(0, "toFind empty (expect immediate match at 0): " + (string)llListFindListNext(myList, toFind, 0)); llSay(0, "toFind empty (expect immediate match at 1): " + (string)llListFindListNext(myList, toFind, 1)); myList = []; toFind = [1,2]; llSay(0, "myList empty, toFind populated (expect -1): " + (string)llListFindListNext(myList, toFind, 0));
//indices: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 myList = ["A", 0, "B", 1, "C", 2, "A", 0, "A", 1, "A", "A", 0, <1,2,3>, "c"]; toFind = ["A", 0]; llSay(0, "llListFindListNext(myList, toFind, 0) (expect '0'): " + (string)llListFindListNext(myList, toFind, 0)); llSay(0, "llListFindListNext(myList, toFind, 1) (expect '6'): " + (string)llListFindListNext(myList, toFind, 1)); llSay(0, "llListFindListNext(myList, toFind, 2) (expect '11'): " + (string)llListFindListNext(myList, toFind, 2)); llSay(0, "llListFindListNext(myList, toFind, 3) (expect '-1'): " + (string)llListFindListNext(myList, toFind, 3)); llSay(0, "llListFindListNext(myList, toFind, -1) (expect '11'): " + (string)llListFindListNext(myList, toFind, -1)); llSay(0, "llListFindListNext(myList, toFind, -2) (expect '6'): " + (string)llListFindListNext(myList, toFind, -2)); llSay(0, "llListFindListNext(myList, toFind, -3) (expect '0'): " + (string)llListFindListNext(myList, toFind, -3)); llSay(0, "llListFindListNext(myList, toFind, -4) (expect '-1'): " + (string)llListFindListNext(myList, toFind, -4)); toFind = [3]; llSay(0, "3 not matched with vector<1,2,3> content (expect '-1'): " + (string)llListFindListNext(myList, toFind, 0)); toFind = [<1,2,3>]; llSay(0, "Find a vector: (expect '13'): " + (string)llListFindListNext(myList, toFind, -1)); toFind =[<1,2,3>, "c"]; llSay(0, "Find a vector: (expect '13'): " + (string)llListFindListNext(myList, toFind, -1)); toFind =[ "c"]; llSay(0, "Find last element in reverse (expect '14'): " + (string)llListFindListNext(myList, toFind, -1)); llSay(0, "Find last element fwd (expect '14'): " + (string)llListFindListNext(myList, toFind, 0)); llSay(0, "Find last element with llListFindList (expect '14'): " + (string)llListFindList(myList, toFind)); }}See also
Section titled “See also”Functions
Section titled “Functions”llSubStringIndex— Find a string in another string
Original wiki source
Some wiki templates and tables need their original context. View this article on the Second Life Wiki. Technical wording and examples are retained from the source; historical guidance may differ from current behavior.