Lua(7) ——表库table



【转载】

    http://www.cnblogs.com/whiteyun/archive/2009/08/10/1543139.html

    基于Lua 5.1 。




【表库table】


table.concat(表, 分隔符sep, 开始下标start, 结束下标end)

    功能:

        列出参数中指定table的数组部分从start到end的所有元素。

        元素间以指定的分隔符(sep)隔开。

        除了table外, 其他的参数都不是必须的。

        分隔符的默认值是空字符, start的默认值是1, end的默认值是数组部分的总长。

    举例:

        t = {"alpha", "beta", "gamma"}

        print(table.concat(t, ":"))

            -- 输出:alpha:beta:gamma

        print(table.concat(t, nil, 1, 2))

            -- 输出:alphabeta

        print(table.concat(t, "000", 2, 3))

            -- 输出:beta000gamma


table.insert(表, 键pos, 值value)

    功能:

        在table的数组部分指定位置(pos)插入值为value的一个元素。

        pos参数可选, 默认为插入到数组部分的末尾位置。

    举例:

        t = {"1", "2", "3"}

        table.insert(t, "4")

        table.insert(t, "5")

            -- 新表 t = {1, 2, 3, 4, 5}

        table.insert(t, 3, "6")

            -- 新表 t = {1, 2, 6, 3, 4, 5}


table.remove(表, 键pos)

    功能:

        删除并返回table数组部分位于pos位置的元素,其后的元素会被前移。

pos参数可选, 默认为table长度, 即从最后一个元素删起

    举例:

        t = {"1", "2", "3", "4", "5"}

        table.remove(t)

            -- 新表:t = {1, 2, 3, 4}

        table.remove(t, 1)

            -- 新表:t = {2, 3, 4}


table.maxn(表)

    功能:

        返回指定table中所有正数key值中最大的key值。

        如果不存在key值为正数的元素,则返回0 。

        此函数不限于table的数组部分。

    举例:

        t = {[1] = "a", [2]= "b", [26]="z"}

        print(table.maxn(t))

            -- 输出:26

        t[91.32] = true

        print(table.maxn(t))

            -- 输出:91.32


table.getn(表)

    功能:

        返回table表中数组下标从1开始连续元素的个数。

    举例:

        t = {[1] = "a", [2]= "b", [26]="z"}

        print(table.getn(t))

            -- 输出:2

            -- 因为连续下标1,2。而26不再连续。


table.foreachi(表, function(i, v))

    功能:

        会期望一个从 1(数字 1)开始的连续整数范围。

        遍历table中的key和value逐对进行function(i, v)操作

    举例:

        t = {2,4,6, la = "hello", lb = "world", 8,10,12, lc = "hehe"}

        table.foreachi(t, print)

            -- 输出结果

                1    2

                2    4

                3    6

                4    8

                5    10

                6    12


table.foreach(表, function(i, v))

    功能:

        与foreachi不同的是,foreach会对整个表进行迭代。

    举例:

        t = {2,4,6, la = "hello", lb = "world", 8,10,12, lc = "hehe"}


        table.foreach(t, print)

            -- 输出结果

                1    2

                2    4

                3    6

                4    8

                5    10

                6    12

                lb   world

                lc   hehe

                la   hello


table.sort(表, comp)

    功能:

        对给定的table进行升序排序。

        comp是一个可选参数,用来自定义sort函数的排序标准。

            此函数应满足以下条件:接受两个参数(依次为a,b),并返回一个布尔型的值。

            若想要 a 应该排在 b 前面,则返回true,反之返回false。

    举例:

        t = {1, 3, 8, 5, 2}

        -- 默认排序

        table.sort(t)

        print(table.concat(t,","))

            -- 输出:1,2,3,5,8


        -- 定义comp

        function comp(a,b)

            return a > b

        end

        table.sort(t, comp)

        print(table.concat(t,","))

            -- 输出:8,5,3,2,1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值