Lua用table模拟数组

 1 local array = {};
 2 local row1 = {1, 3, 5, 7, 9}
 3 local row2 = {2, 4, 6, 8, 10}
 4 local row3 = {"I", "love", "lua"}
 5 array[1] = row1;
 6 array[2] = row2;
 7 array[3] = row3
 8 print("length = ", #array);
 9 for i = 1, #array do
10     for j = 1, #array[i] do
11         print(array[i][j])
12     end
13 end
 1 function Create2DArray(row, col)
 2     local array2D = {}
 3     for i = 1, row do
 4         array2D[i] = {}
 5         for j = 1, col do
 6             array2D[i][j] = 0
 7         end
 8     end
 9     return array2D
10 end
1 function Print2DArray(array)
2   local  str = ""
3     for i = 1, #array do
4         for j = 1, #array[i] do
5             str = table.concat(array[i], " ")
6         end
7         print(str)
8     end
9 end

原文地址:https://www.cnblogs.com/blackteeth/p/10162303.html

时间: 2024-10-14 14:50:07

Lua用table模拟数组的相关文章

Lua之table(表)

Lua table(表) 使用表来统一表示Lua中的一切数据,是Lua区分于其他语言的一个特色.这个特色从最开始的Lua版本保持至今,很大的原因是为了在设计上保持简洁.Lua表分为数组和散列表部分,其中数组部分不像其他语言那样,从0开始作为第一个索引,而是从1开始.散列表部分可以存储任何其他不能存放在数组部分的数据,唯一的要求就是键值不能为nil.尽管内部实现上区分了这两个部分,但是对使用者而言却是透明的.使用Lua表,可以模拟出其他各种数据结构--数组.链表.树等. 虽然设计上简洁,并且对使用

Lua学习——table

table类型实现了“关联数组”.“关联数组”是一种具有特殊索引方式的数组.不仅可以通过证书来索引它,还可以使用字符串或其他类型(除了nil)来索引它.table是Lua中主要的数据结构机制(事实也是仅有的),具有强大的功能.基于table可以以一种简单.统一和高效的方式来表示普通数组.符号表.集合.记录.队列和其他数据结构. table的特性: table是一个“关联数组”,数组的索引可以是数字或者是字符串 table 的默认初始索引一般以 1 开始 table 的变量只是一个地址引用,对 t

Lua中table类型的源码实现

  1.概述 table是lua中唯一的表示数据结构的工具.它可以用于实现数据容器.函数环境(Env).元表(metatable).模块(module)和注册表(registery)等其他各种用途.因此了解table的实现是非常有必要的,根据<Lua中数据类型的源码实现>中知道,在Lua中,table是由结构体体Table来实现的.下面将以Lua 5.2.1的源码来看table的实现.   2.实现原理 在Lua5.0以后,table是以一种混合型数据结构来实现的,它包含一个哈希表部分和一个数

Lua整理——table库

table属性 table库是有一些辅助函数构成的,这些函数将table作为数组来操作.其中,有对列表中插入和删除元素的函数,有对数组元素进行排序的函数,还有对链接一个数组中所有字符串的函数. 0.table.getn()Lua 中我们经常假定 array 在最后一个非 nil 元素处结束. 这个传统的约定有一个弊端:我们的 array中不能拥有 nil 元素.对大部分应用来说这个限制不是什么问题,比如当所有的 array 有固定的类型的时候.但有些时候我们的 array 需要拥有 nil 元素

lua 的 table 处理

lua 的整体效率是很高的,其中,它的 table 实现的很巧妙为这个效率贡献很大. lua 的 table 充当了数组和映射表的双重功能,所以在实现时就考虑了这些,让 table 在做数组使用时尽量少效率惩罚. lua 是这样做的.它把一个 table 分成数组段和 hash 段两个部分.数字 key 一般放在数组段中,没有初始化过的 key 值全部设置为 nil .当数字 key 过于离散的时候,部分较大的数字 key 会被移到 hash段中去.这个分割线是以数组段的利用率不低于 50% 为

lua 中table的使用和分析

1.table有4种基本操作:读,写,迭代和获取长度. lua中没有删除操作而是将对应键位的值设置为nil. lua的内部定义是在lobject.h </pre><pre code_snippet_id="580775" snippet_file_name="blog_20150115_1_6202329" name="code" class="python"><pre name="co

lua的table库

函数列表: table.insert(table,[ pos,] value) table.remove(table[, pos]) table.concat(table[, sep[, i[, j]]]) table.sort(table[, comp]) 1. insert 和 remove 只能用于数组元素的插入和移出, 进行插入和移出时,会将后面的元素对齐起来.     所以在 for 循环中进行 insert 和 remove 的时候要注意插入和移除时是否漏掉了某些项:        

lua的table表处理 及注意事项

lua,一款很轻量级很nice很强大的脚本语言,做为lua中使用最为频繁的table表,在使用之时还是有颇多的好处与坑的: 下面是大牛 云风的一片关于lua table的blog,可使得对lua table内在机制 窥测一二: lua 的整体效率是很高的,其中,它的 table 实现的很巧妙为这个效率贡献很大. lua 的 table 充当了数组和映射表的双重功能,所以在实现时就考虑了这些,让 table 在做数组使用时尽量少效率惩罚. lua 是这样做的.它把一个 table 分成数组段和 h

Lua的table库函数insert、remove、concat、sort详细介绍

函数列表: table.insert(table,[ pos,] value) table.remove(table[, pos]) table.concat(table[, sep[, i[, j]]]) table.sort(table[, comp]) 1. insert 和 remove 只能用于数组元素的插入和移出, 进行插入和移出时,会将后面的元素对齐起来. 所以在 for 循环中进行 insert 和 remove 的时候要注意插入和移除时是否漏掉了某些项: local t = {