Difference between revisions of "LlGetListEntryType"

From Second Life Wiki
Jump to navigation Jump to search
(added snippet)
Line 51: Line 51:
     }
     }
     return pair;
     return pair;
}
</lsl>
<lsl>
//A list dumper that produces an output suitable for pasting back into LSL as a variable initialization.
//Originally By Talarus Luan
string list_dump(list mylist)
{
    string s = "[";
    integer i;
    integer t;
    for (i = 0; i < llGetListLength(mylist); ++i)
    {
        if (i > 0)
            s += ",";
        t = llGetListEntryType(mylist,i);
        if (t==4)
            s+= "(key)";
        if ((t == 3) || (t==4)) 
            s += "\""; s += llList2String(mylist,i);
        if ((t == 3) || (t==4))
            s += "\"";
    }
    s += "]";
    return s;
}
}
</lsl>
</lsl>

Revision as of 18:24, 19 June 2011

Summary

Function: integer llGetListEntryType( list src, integer index );

Returns an integer that is the type of the entry index in src.

• list src List containing the element of interest.
• integer index Index of the element of interest.

index supports negative indexes.
If index describes a location not in src then TYPE_INVALID is returned.

Specification

Index Positive Negative
First 0 -length
Last length - 1 -1

Indexes

  • Positive indexes count from the beginning, the first item being indexed as 0, the last as (length - 1).
  • Negative indexes count from the far end, the first item being indexed as -length, the last as -1.

Type Description
TYPE_INTEGER 1 integer
TYPE_FLOAT 2 float
TYPE_STRING 3 string
TYPE_KEY 4 key
TYPE_VECTOR 5 vector
TYPE_ROTATION 6 rotation
TYPE_INVALID 0 none

Caveats

  • If index is out of bounds the script continues to execute without an error message.
  • If a vector is stored in a list as "<7,5,0>" (as a string type, as opposed to <7,5,0> which is a vector type), its type will be returned as TYPE_STRING, not TYPE_VECTOR. The same applies for "1" being returned as a string instead of an integer, etc. There is no easy way to guess what the type should be from a string value. The users intent may not be obvious
All Issues ~ Search JIRA for related Bugs

Examples

Useful Snippets

This function has two primary uses: serializing a list to a string, debugging. <lsl>//A simple list serializer and deserializer. //This will round floats to 6 decimal places and not handle strings with embedded "

See Also

Functions

•  llList2Float
•  llList2Integer
•  llList2Key
•  llList2Rot
•  llList2String
•  llList2Vector

Articles

•  Negative Index

Deep Notes

Search JIRA for related Issues

Signature

function integer llGetListEntryType( list src, integer index );