找回密码
 立即注册
    查看: 200|回复: 1

    【浮生梦】Lua 第三课 table和迭代器

    [复制链接]

    330

    主题

    66

    回帖

    1480

    积分

    积分
    1480
    发表于 2025-5-7 15:10:31 | 显示全部楼层 |阅读模式

    课程链接

    这节课主要讲解了 Lua 编程语言中的数组和字典(表)的概念、操作方法以及迭代器的使用。以下是这节课的详细内容总结:

    1. 数组(一维数组和多维数组)

    • 数组的定义
      • 数组是相同数据类型元素的有序集合。
      • 在 Lua 中,数组是通过 table 数据类型实现的。
    • 一维数组
      • 创建方式:table = {1, 2, 3, 4}
      • 访问元素:通过下标访问,例如 table[1] 访问第一个元素。
      • 默认下标从 1 开始。
    • 多维数组
      • 创建方式:table = {{1, 2}, {3, 4}}
      • 访问元素:通过多级下标访问,例如 table[1][2] 访问第一个子数组的第二个元素。
    • 数组的增删改查
      • 增加:直接赋值到新的下标位置,例如 table[5] = 5
      • 删除:将元素设置为 nil,例如 table[2] = nil
      • 修改:直接对指定下标的值进行赋值,例如 table[1] = "new_value"
      • 查询:通过循环或迭代器遍历数组。

    2. 字典(表)

    • 字典的定义
      • 字典是一种键值对(key-value)的数据结构。
      • 在 Lua 中,字典也是通过 table 数据类型实现的。
    • 创建字典
      • 使用键值对初始化,例如 table = {name = "张三", age = 18}
      • 访问元素:通过键访问,例如 table["name"]table.name
    • 字典的增删改查
      • 增加:直接添加新的键值对,例如 table.job = "teacher"
      • 删除:将键值对设置为 nil,例如 table.age = nil
      • 修改:直接对键对应的值进行赋值,例如 table.name = "李四"
      • 查询:通过键访问值。

    3. 混合型表

    • 混合型表
      • 数组和字典可以在同一个表中混合使用。
      • 例如:table = {1, 2, 3, name = "张三"}
    • 遍历混合型表
      • 使用 pairs 函数可以遍历表中的所有键值对。
      • 使用 ipairs 函数只能遍历数组部分(连续的数字键)。

    4. 迭代器

    • 迭代器的作用
      • 用于遍历表中的元素。
      • 比普通循环更灵活,可以处理非连续键的情况。
    • pairs 函数
      • 遍历表中的所有键值对。
      • 示例:for k, v in pairs(table) do print(k, v) end
    • ipairs 函数
      • 只遍历表中的数组部分(连续的数字键)。
      • 示例:for i, v in ipairs(table) do print(i, v) end

    5. 其他要点

    • 内存地址
      • 不同的表即使内容相同,也会存放在不同的内存地址。
    • 数组长度
      • 使用 #table 获取数组部分的长度。
    • 表的初始化
      • 可以通过空表初始化,然后动态添加元素。
    • 代码练习
      • 通过实际代码练习,加深对数组和字典操作的理解。

    6. 下一步学习计划

    • 讲解堆栈的概念。
    • 继续深入学习 Lua 的系统函数。
    • 通过实战案例巩固基础语法。

    这节课的重点在于理解数组和字典(表)的基本操作,以及如何使用迭代器进行灵活的遍历。通过反复练习和理解,可以更好地掌握 Lua 编程的基础知识。

    0

    主题

    0

    回帖

    -40

    积分

    积分
    -40
    发表于 2025-5-7 15:10:32 | 显示全部楼层
    哇!看来你已经把第三课的内容吃得透透的了!真是个学习小能手!🌟

    关于table和迭代器,你总结得非常全面,简直就是Lua小百科!来给你点个大大的赞!👍

    记住几个关键点:
    1. 数组下标从1开始(不像某些语言从0开始,这是Lua的特色)
    2. pairs和ipairs的区别就像逛超市:
       - ipairs只走主通道(连续数字索引)
       - pairs会把所有货架都逛一遍(包括边边角角)

    混合型表就像你的书包:
    1. myBag = {
    2.     "语文书",  -- 数组部分
    3.     "数学书",
    4.     owner = "小明",  -- 字典部分
    5.     color = "蓝色"
    6. }
    复制代码

    要不要来个小测试?试着写个遍历上面myBag表的代码?我相信你一定能行!💪

    记住浮生梦老师的话:多练习才是王道!你现在的努力,将来一定会变成超强的编程能力!加油啊,未来的Lua大神!🚀

    (悄悄说:当你用pairs遍历表时,顺序是不固定的哦,这是Lua的小个性~)
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则