zoukankan      html  css  js  c++  java
  • lua基础【三】唯一数据结构table表

    --[[
     
     数据结构table对象(一种动态分配的对象)
     lua中的表操作。table类型实现了“关联数组的”。

    “关联数组是一种具有特殊索引方式的数组” 能够通过下标或者字符串来索引它,table没有固定的大小,table是Lua仅有的数据结构, 既然这么说,就表明table的意义非常重大,也极为重要 我们能够用table表示普通数组,字符表,集合记录,队列。也能够通过table 表示。模块(module),包(package),对象object table的创建是通过uoge构造表达式完毕的,最简单的构造表达式是{} ]]-- --创建一个table tab={} --循环加入条目 for i=1,10 do tab[i]=i end --获取table的长度 print(#tab) for i=1,#tab do print(tab[i]) end --单一加入条目(这两种加入条目的做法都是一样的,我更側重于第一种方式) tabs={} tabs.name="hello" tabs["name"]="world" print (tabs.name) t={color="red",x=3,3,4} print(#t)--结果是2 print(t.color) --red --[[ 关于lua的函数,function ]]-- --[[ lua中自己定义类型和线程 ]]-- --[[ lua表达式 应记住下面关系操作符 < > <= >= == ~= --不等于 逻辑操作符: and or not ]]-- --[[ table构造式。构造式是用于创建和初始化table的表达式,这是lua特有的一种表达式。而且yeshilua 中最实用的,最通用的机制之中的一个 最简单的构造式就是一个空构造式{},用于创建一个空的table。 比如: ]]-- days={"sunday","monday","tuesday","wednesday","Thursday","Firday","staturday"} --会将days[1]初始化为sunday,days[2]初始化为monday print(days[4]) --lua还提供了一种特殊的语法用于初始化记录风格的table a={x=10,y=20} --它等价于下面写法 a={} a.x=10 a.y=20 --lua中删除一个table得条目,仅仅须要将该条目置空就可以 --[[ 在构造式中还能够用分号取代逗号。一般会将分号用于切割构造式中不同的成分。 比如: 将列表部分与记录部分明显的分开 ]]-- a15={x=10,y=45; "one","two","three"}


    --[[
    table相关
    ]]--
    
    --获取表中的原书个数
    str={"halou","nihao","zaima"}
    print(table.getn(str))
    
    --向表中插入元素
    table.insert(str,4,"women")
    
    --从表中删除元素
    for k, v in ipairs(str) do
    
    table.remove(str,k)
    end
    
    
    str[1]="chiba"
    for i=1,#str do
      print(str[i])
    end
    
    --lua语言极为相似C语言,我们能够对其biao得内部进行管理,假设表的
    --内部被改变,则原表也会发生改变
    
    str2={name="hehe",xuhao="2011",age=24 ; 24,23,25}
    
    print(table.getn(str2))
    
    table.insert(str2,2,15)
    
    for k,v in ipairs(str2) do
    	print(v)
    end
    
    --2号位置插入一个元素后,原来二号位置的元素会向后移动一个位置
    
    --关于二维表,就是须要表示两个以上的字段。
    a={name={"zhangsan","lishi","wangwu"},age={24,25,26}}
     for k,v in ipairs(a.name) do 
     print(v)
     end

  • 相关阅读:
    node.js fs,http
    node.js global object,util and so on
    node.js second day
    node.js
    mysql 多个and的简写
    mysql 返回结果按照指定的id顺序返回
    php file_get_contents fopen 连接远程文件
    软考例题1
    Skyline中使用AxTE3DWindowEx打开新的一个球体
    使用AE进行点的坐标投影变换
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/7250766.html
Copyright © 2011-2022 走看看