lua学习笔记15:table数组逆序

数组的逆序,只能用于数组,不能用于哈希表

function reverseTable(tab)
	local tmp = {}
	for i = 1, #tab do
		local key = #tab
		tmp[i] = table.remove(tab)
	end

	return tmp
end

// 示例
local t = {"one", "two", "three"}

for k, v in pairs(t) do
	print(k, v)
end

t = reverseTable(t)

for k, v in pairs(t) do
	print(k, v)
end

输出:

1 one

2 two

3 three

1 three

2 two

3 one

时间: 2024-07-29 19:03:21

lua学习笔记15:table数组逆序的相关文章

Lua学习笔记(weak table)

tableA = {} tableB = {} setmetatable(tableA ,tableB ) tableB .__mode = "k" -- tableB .__mode = "v" 或者tableB .__mode = "kv" 这样,tableA将是一个weak table 当tableA中的键的引用为0,或者对应键的值的引用为0是,就会删除正行属性: testfunction() local key = {} tableA[k

Lua学习笔记(七):迭代器与泛型for

1.迭代器与闭包 迭代器是一种支持指针类型的结构,它可以遍历集合的每一个元素.在Lua中我们常常使用函数来描述迭代器,每次调用该函数就返回集合的下一个元素. 迭代器需要保留上一次成功调用的状态和下一次成功调用的状态,也就是他知道来自于哪里和将要前往哪里.闭包提供的机制可以很容易实现这个任务.记住:闭包是一个内部函数,它可以访问一个或者多个外部函数的外部局部变量.每次闭包的成功调用后这些外部局部变量都保存他们的值(状态).当然如果要创建一个闭包必须要创建其外部局部变量.所以一个典型的闭包的结构包含

Lua学习笔记(八):数据结构

table是Lua中唯一的数据结构,其他语言所提供的数据结构,如:arrays.records.lists.queues.sets等,Lua都是通过table来实现,并且在Lua中table很好的实现了这些数据结构. 1.数组 在Lua中通过整数下标访问table中元素,既是数组,并且数组大小不固定,可动态增长.通常我们初始化数组时,就间接地定义了数组的大小,例如: 1 a = {} -- new array 2 for i=1, 1000 do 3 a[i] = 0 4 end 5 6 --数

[转]LUA 学习笔记

Lua 学习笔记 入门级 一.环境配置 方式一: 1.资源下载http://www.lua.org/download.html 2.用src中的源码创建了一个工程,注释调luac.c中main函数,生成了一个exe,直接可以测试lua了 方式二(推荐): 从https://code.google.com/p/luaforwindows/ 下载“LuaForWindows_v5.1.4-46.exe”,一键安装即可  二.执行 lua xxx.lua 三.注释 1.行注释格式:-- 2.块注释格式

Lua学习笔记(六):函数-续

Lua中的函数是带有词法定界(lexical scoping)的第一类值(first-class values).第一类值指:在Lua中函数和其他值(数值.字符串)一样,函数可以被存放在变量中,也可以存放在表中,可以作为函数的参数,还可以作为函数的返回值.词法定界指:嵌套的函数可以访问他外部函数中的变量.这一特性给Lua提供了强大的编程能力. Lua中关于函数稍微难以理解的是函数也可以没有名字,匿名的.当我们提到函数名(比如print),实际上是说一个指向函数的变量,像持有其他类型的变量一样:

Lua学习笔记(五):函数

函数有两种用途: 1).完成指定的任务,这种情况下函数作为调用语句使用: 2).计算并返回值,这种情况下函数作为赋值语句表达式使用. 1 function func_name (arguments-list) 2 statements-list; 3 end; 4 5 --调用函数的时候,如果参数列表为空,必须使用()表明是函数调用 6 print(8*9, 9/8) 7 a = math.sin(3) + math.cos(10) 8 print(os.date()) 9 10 --上述规则有

Lua学习笔记(三):表的构造

构造器是创建和初始化表的表达式.表是Lua特有的功能强大的东西.最简单的构造函数是{},用来创建一个空表.可以直接初始化数组: 1 days = {"Sunday", "Monday", "Tuesday", "Wednesday", 2 "Thursday", "Friday", "Saturday"} Lua将“Sunday”初始化days[1](第一个元素索引为

lua学习笔记(2)-常用调用

assert(loadstring("math.max(7,8,9)"))dofile("scripts/xxx.lua")math.floor()math.random()   math.random(10, 100)math.min(3,4,5) math.max(2,3,4)num = tonumber(str)str = tostring(num)len = string.len(str)str = string.sbu (str, start_positi

Lua学习笔记6:时间和日期

lua中的时间类似于C语言中的时间,如下: local time = os.time() print(time) local t = os.date("*t") for k,v in pairs(t) do <span style="white-space:pre"> </span>print(k,v) end 这样就可以分别输出年.月.日.时.分.秒,输出如下: 1407406553 hour 18 min 15 wday 5 day 7