LlListSort

来自人工智能助力教育知识百科
跳转至: 导航搜索

Template:Needs Translation/


函数名
Function: list llListSort( list src, integer stride, integer ascending );
参数:

list src – List to be sorted. integer stride – number of entries per stride, if less than 1 it is assumed to be 1 integer ascending – if TRUE then the sort order is ascending, otherwise the order is descending.

返回值:

返回一个按 stride 排序的 src 列表。

注意事项
*它使用了一个未优化的选择排序算法,这是一个大 o 为 n2的算法。Jira 的问题是为了改善这个功能 svc-2988。
  • 最初 wiki 声明“ ascending”参数的非零值将产生一个 ascending sort。那是不正确的。对于此函数,升序排序的值必须正好为1(或 true)。向量按大小排序。
  • Svc-5643旋转没有按任何有意义的顺序排序。如果只包含旋转的列表按升序排序,则返回值不变。
  • 对于降序排序,如果存在混合类型,则最终的顺序是确定的(相同的输入总是产生相同的输出) ,但它可能完全无用。
llListSort([2, "B", "C", 3, 1, "A"], 1, FALSE) // returns ["A", 3, 1, "C", "B", 2]

但是,如果没有混合类型,那么下降类型就可以正常工作。

  • 当步长大于1时,如果列表长度不是步长的倍数,则返回列表时不会改变。
  • 当字符串包含数字时,数字仍然像其他字符一样从左到右排序,这可能不一定匹配数字顺序:
llListSort(["127", "3", "25"], 1, TRUE) // returns ["127", "25", "3"] because the 1 in 127 is before the 2 in 25 which is before the 3

To sort them in numeric order, numbers in strings can be padded with zeros:

llListSort(["127", "003", "025"], 1, TRUE) // returns ["003", "025", "127"]
  • 这个顺序不同于 prim 库存中的项目顺序,即“自然顺序”(例如“ new script 2”排在“ new script 11”之前)。
示例
示例一
list numbers = [3, "three", 2, "two", 1, "one"];
default
{
    state_entry()
    {
        llOwnerSay(llDumpList2String(numbers, ","));
        // Object: 3,three,2,two,1,one
        numbers = llListSort(numbers, 2, TRUE);
        llOwnerSay(llDumpList2String(numbers, ","));
        // Object: 1,one,2,two,3,three
    }
}
相关函数
llListRandomize--重新整理列表的元素。
相关事件