【11月更文挑战第28天】

简介: 【11月更文挑战第28天】

Lua中的table是一种非常灵活的数据结构,它可以用来模拟数组、字典、集合等多种数据结构。table以键值对的形式存储数据,其中键可以是任何类型,但通常是数字或字符串。以下是table的一些基本用法和项目示例。

table的基本操作

创建和初始化table

-- 创建一个空的table
local myTable = {
   }

-- 直接初始化一个带有值的table
local myTable = {
   key1 = "value1", key2 = "value2"}

访问和赋值

-- 给table赋值
myTable["key3"] = "value3"

-- 访问table中的值
local value = myTable["key3"]
print(value)  -- 输出:value3

数组式的使用

-- 数组式的赋值
myTable[1] = "first element"
myTable[2] = "second element"

-- 数组式的访问
local firstElement = myTable[1]
print(firstElement)  -- 输出:first element

table的遍历

使用ipairs遍历数组

for index, value in ipairs(myTable) do
    print(index, value)
end

使用pairs遍历所有键值对

for key, value in pairs(myTable) do
    print(key, value)
end

完整项目示例

假设我们正在创建一个简单的通讯录应用,我们将使用table来存储联系人信息,并提供添加、查找和显示所有联系人的功能。

-- 创建一个空的table来存储联系人
local contacts = {
   }

-- 添加联系人函数
function addContact(name, phoneNumber)
    table.insert(contacts, {
   name = name, phone = phoneNumber})
end

-- 查找联系人函数
function findContact(name)
    for i, contact in ipairs(contacts) do
        if contact.name == name then
            return contact
        end
    end
    return nil
end

-- 显示所有联系人函数
function displayContacts()
    print("Contacts:")
    for i, contact in ipairs(contacts) do
        print(string.format("%d: %s - %s", i, contact.name, contact.phone))
    end
end

-- 添加一些联系人
addContact("Alice", "123-456-7890")
addContact("Bob", "987-654-3210")

-- 查找一个联系人
local contact = findContact("Alice")
if contact then
    print(string.format("Found contact: %s - %s", contact.name, contact.phone))
else
    print("Contact not found.")
end

-- 显示所有联系人
displayContacts()
目录
相关文章
|
20天前
【12月更文挑战第14天】
【12月更文挑战第14天】
40 8
|
18天前
|
开发者 索引
【12月更文挑战第16天】
【12月更文挑战第16天】
28 4
|
30天前
【12月更文挑战第04天】
【12月更文挑战第04天】
29 2
|
2月前
【11月更文挑战第25天】
【11月更文挑战第25天】
29 0
|
24天前
【12月更文挑战第10天】
【12月更文挑战第10天】
72 32
|
14天前
|
SQL 关系型数据库 MySQL
【12月更文挑战第20天】
【12月更文挑战第20天】
33 20
|
17天前
|
Java 开发者
【12月更文挑战第17天】
【12月更文挑战第17天】
49 16
|
11天前
|
Python
【12月更文挑战第23天】
【12月更文挑战第23天】
24 5
|
21天前
|
Linux 数据安全/隐私保护 Python
【12月更文挑战第13天】
【12月更文挑战第13天】
44 12
|
27天前
|
存储 Java 索引
【12月更文挑战第07天】
【12月更文挑战第07天】
53 17