LUA-学习笔记

Lua for Windows下载:https://github.com/rjpcomputing/luaforwindows/releases
LUA是一种动态类型的语言。
lua只有一种 number 类型,即 double 双精度浮点型。
lua只有一种数据结构,即table

table

table是LUA中唯一的数据结构,可以直接索引,也可以采用键值对索引,可用任何值(nil除外)建立索引数组。

table的组成

  1. 哈希表
    用来存储Key-Value 键值对,当哈希表上有冲突的时候,会通过链表的方式组织冲突元素
  2. 数组
    用来存储 数据(包括数字,表等)
table={[1]="f","a","b","c","d",[6]="h"}

数据在表 table 中的存储方式:

1)根据元素类别分别存进哈希表与数组:
哈希表:{[1]=“f”,[6]=“h”};
数组:{ “a”,“b”,“c”,“d” }
2)将数组中的元素放入哈希表:
当数组中的元素转移到哈希表时,数组中的元素变为[1]=“a”;而此时哈希表中已有键值对 [1]=“f”,发生冲突,会将新值"a"重新与键1匹配,即得到新的键值对[1]=“f”,此时的哈希表元素为:
{ [1]=“a”,[2]=“b”,[3]=“c”,[4]=“d”,[6]=“h”}

转载,详细内容请参考链接:https://blog.csdn.net/wwlcsdn000/article/details/81291756

table插入和移除

  1. 在table表中插入新元素
table1={1,2,3}
print("原table1:")
for k,v in pairs(table1) do
     print(k.."-"..v)
end
--在第二个位置插入0
table.insert(table1,2,0)
print("新table")
for k,v in pairs(table1) do
     print(k.."-"..v)
end
  1. 在table表中删除元素
table1={1,2,3}
print("原table1:")
for k,v in pairs(table1) do
     print(k.."-"..v)
end

table.remove(table1,2)
print("新table")
for k,v in pairs(table1) do
     print(k.."-"..v)
end

pairs和ipairs

table={[1]="f","a","b","c","d",[6]="h"}
print("pairs")
--pairs显示整个hash表
for k,v in pairs(table) do
     print(k.."-"..v)
end
print("ipairs")
--ipairs显示数组索引
for k,v in ipairs(table) do
     print(k.."-"..v)
end
table={[1]="f","a","b","c","d",[5]="e",[6]="h"}
print("pairs")
--pairs显示整个hash表
for k,v in pairs(table) do
     print(k.."-"..v)
end
print("ipairs")
--ipairs显示数组索引
for k,v in ipairs(table) do
     print(k.."-"..v)
end

控制流

while

a=1
while(a<10) do
    a=a+1
end

for循环

table={[1]="f","a","b","c","d",[5]="e",[6]="h"}
for k,v in pairs(table) do
--其中,k为索引符号,v为值
     print(k.."-"..v)
end

repeat until

a=1
repeat
    a=a+1
until(a>10)

if else

a=-2
if a>0 then
    print(a..">0")
elseif a==0 then
     print(a.."==0")
else
     print(a.."<0")
end

发布了7 篇原创文章 · 获赞 4 · 访问量 6444

猜你喜欢

转载自blog.csdn.net/xiaopueerer/article/details/105165601