美文网首页
lua学习前5章解惑

lua学习前5章解惑

作者: 跃千山 | 来源:发表于2020-04-19 23:06 被阅读0次

lua学习前5章解惑

基础概念

-l 参数

-- a,b文件均需放到 lua.exe 所在的文件目录
-- a.lua 文件
x = 5
-- b.lua 文件
print(x)
-- 交互模式中输入
lua -la -lb 
-- 先运行 a.lua ,再运行 b.lua
-- 结果为 5

表达式

链表

list = nil
local rows = 1
list_next = nil
for line in io.lines("D://LuaStudy//CodeTest//day3//链表数据.txt") do
    list = {next = list, value = line}
    --print("文件的当前行数:" .. rows)
    print("The number of rows in the file:" .. rows)
    --print("文件的当前行的值:" .. list.value)
    print("Current line value of the file:" .. list.value)
    -- 由于第一次 list 为 nil,所以需要进行转换
    --print("将文件所在行的 value 值保存到一个名为 list.next 的 table 中,其引用为:" .. tostring(list.next) .. "\n")
    print("Save the value of the file's row to a table named list.next, which is referred to as:" .. tostring(list.next) .. "\n")
    rows = rows + 1
    list_next = list.next
end

local l = list

--print("因为循环读文件数据后,value 保存的是文件最后一行的值,所以 l.value 是下列数值 ↓ ")
print("Because after looping through the file data, value stores the value of the last line of the file, so l.value is the following value ")
print(l.value .. "\n")
print(tostring(list_next)) -- 和最后一个 list 所保留的 table 引用一致
print(list_next == l.next) -- true
--print("此时当前 table 持有的 next 引用改变为 list.next ,也就是保存有上一个 list 的 table")
print("current table retains next quotes change to list.next ,Save the last one list of table")
print(l.next.value .. "\n")
print(l.next.next.value .. "\n")
print(l.next.next.next.value .. "\n")
while l do
    print(l.value)
    l = l.next
end

语句

  1. 不论是赋值还是循环赋值,其对表达式或值的运算都是在其赋值之前一次性求值的
    1. 赋值时,会先计算右边的值
    2. 循环时,三个表达式在循环前求值
  2. 通过迭代器生成一个逆向原有索引的 table 很容易
    1. 就是将原有 table 的值和索引互换
    2. v 获取原 table 的值,作为新 table 的索引
    3. k 获取原 table 对于值的索引,赋值给新 table 作为其值

函数

  1. unpack 用来解构一个 table ,得到一个 table 中的所有元素,在重载参数列表时很有用

    1. 只需将解构出来的元素作为某个函数的参数即可
    2. 如:string.find(unpack({"bilibili", "bi"}))
  2. 具名参数可指定某个函数参数为 table,并在调用时传入这个 table 给期内的参数命名

function rename (arg)
    print(arg.old, arg.new)
    return os.rename(arg.old, arg.new)
end
rename{old = "D:\\LuaStudy\\CodeTest\\4——函数\\temp.lua", new = "D:\\LuaStudy\\CodeTest\\4——函数\\temp1.lua"}

相关文章

  • lua学习前5章解惑

    lua学习前5章解惑 基础概念 -l 参数 表达式 链表 语句 不论是赋值还是循环赋值,其对表达式或值的运算都是在...

  • redisgo操作LUA脚本

    LUA脚本基础学习:LUA脚本--菜鸟教程[https://www.runoob.com/lua/lua-tuto...

  • 【译】从 JS 学习 Lua

    原文:Learning Lua/From JS 从 JS 学习 Lua 对 JavaScript 已经了解,想学习...

  • Lua 基本语法

    Lua 学习起来非常简单,我们可以创建第一个 Lua 程序! 第一个 Lua 程序 交互式编程 Lua 提供了交互...

  • 2017.5.25

    lua学习总结:数据结构: 使用Lua实现链表(单向链表和双向链表),队列 使用Lua保存图,用table保存,每...

  • Lua api(十) lua_pushboolean/lua_p

    前言# 前两章我们总结了lua_is*系列和lua_to*系列,掌握了lua栈内值的判断和转换方法,现在我们来看看...

  • lua相关学习资料收集

    lua官网:http://www.lua.org/home.htmllua学习网站:http://www.runo...

  • LUA 桥 LuaJ 使用笔记

    开干前的准备1.安装lua插件 Intellij 系列 推荐emmylua mac 只有 lua 2.下载LuaJ...

  • Lua学习

    Lua 学习 元表 setmetatable(table,metatable): 对指定table设置元表(met...

  • Lua学习

    关于luac文件:预编译并非意味着执行更快速,因为Lua中的单元总会在执行前被编译为字节码。luac只不过允许这些...

网友评论

      本文标题:lua学习前5章解惑

      本文链接:https://www.haomeiwen.com/subject/ftfgbhtx.html