lua基础学习
学习 lua ,并实战使用
跃千山
这个作者很懒,什么都没留下…
展开
-
lua学习之基础概念篇
基础概念 程序块 (chunk) 定义 lua 中的每一个源代码文件或在交互模式(Cmd)中输入的一行代码都称之为程序块 一个程序块就是一连串语句或者命令 lua 中连续的语句不需要分隔符,但为了可读性可以加换行,或者分隔符分号 ; 来分割语句 但是换行在代码中没有任何作用,仅仅是为了提高可读性 a = 1 b = a * 2 a = 1; b = a * 2 a = 1; ...原创 2020-02-12 18:46:50 · 888 阅读 · 0 评论 -
lua学习之类型与值篇
类型与值 lua 是动态类型的语言 在语言中没有类型定义的语法 每个值都携带有它的类型信息 8种基础类型 用 type 可以返回这个值的类型的名称 将一个变量用于不同类型,通常会导致混乱的代码 但合理使用,如异常情况下返回 nil ,以区别正常情况下的其他类型的返回值 变量没有预定义的类型,任何变量都可以包含任何类型的值 print(type("Hello")) --st...原创 2020-02-11 20:35:30 · 850 阅读 · 0 评论 -
lua学习之表达式篇
表达式 表达式用于表达值 lua 中表达式可以为数字常量,自变字符串,变量,一元和二元操作符,函数调用、函数定义、table 构造式 算数操作符 一元操作符 -用于负号 * / ^ % -用于减法 x ^ 0.5 x ^ (-1 / 3) -- x 的三次方再求导 10 % 3 = 1 -- 余数计算 x % 1 -- 得到的是 x 的小数部分 x - x % ...原创 2020-02-12 22:22:17 · 179 阅读 · 0 评论 -
lua学习之函数篇
函数 函数是对语句和表达式进行抽象的主要机制 两种用法 一是可以完成特定的任务,一句函数调用被视为一条语句 二是以只用来计算并返回特定的结果,视为一句表达式 print("Hello, World") a = math.sin(3) + math.cos(10) print(os.date()) 无论哪种用法都需要将所有参数放到一对圆括号中 但如果参数是字面字符串或...原创 2020-02-17 21:34:21 · 851 阅读 · 0 评论 -
lua学习之复习汇总篇
第六日笔记 1. 基础概念 程序块 定义 在 lua 中任何一个源代码文件或在交互模式中输入的一行代码 程序块可以是任意大小的 程序块可以是一连串语句或一条命令 也可由函数定义构成,一般将函数定义写在文件中,然后用解释器执行这个文件 换行在代码中不起任何作用,只是为了提升可读性 分隔符 ; 起分隔作用 a = a * 2 b = a * b a = a * 2; b = a *...原创 2020-02-19 15:46:20 · 909 阅读 · 0 评论 -
lua学习之深入函数第一篇
深入函数第一篇 函数是第一类值,具有特定的词法域 第一类值 第一类值的意思是函数与 lua 中的其他类型如数字,字符串具有相同的权力 函数可以存储到全局变量或局部变量变量,还可以存储到 table 中 可作为实参传递给其他函数,也可以作为其他函数的返回值 词法域 定义:一个函数可以嵌套在另一个函数中,内部函数可以访问外部函数定义的局部变量 函数与其他所有的值一样都是匿名的...原创 2020-02-23 21:00:29 · 781 阅读 · 0 评论 -
lua学习之深入函数第二篇
深入函数 2 非全局的函数 函数是第一类值,函数可以存储到全局变量,局部变量,table 字段中 lua 函数库中的大部分函数存储到 table 字段中 Lib = {} Lib.foo = function (x, y) return x + y end Lib.goo = function (x, y) return x - y end Lib = { f...原创 2020-02-26 20:55:49 · 811 阅读 · 0 评论 -
lua学习之迭代器与泛型for 1
迭代器与泛型 for 1 迭代器与 closure 「迭代器」是一种可以遍历一种集合中的所有元素的机制 在 lua 中通常将迭代器表示为函数 每调用一次函数,即返回集合中的「下一个」元素 每个迭代器都需要在每次成功调用之间保存一些状态 这样就知道它现在所在的位置以及如何步进到一下位置 一个 closure 就是一种可以访问其外部嵌套环境中的局部变量的函数 这些变量可用于在成功调用之间保持...原创 2020-02-28 23:13:41 · 169 阅读 · 0 评论 -
lua学习之迭代器与泛型for 2
迭代器与泛型 for 2 无状态的迭代器 自身不保存任何状态的迭代器 可以在多个循环中适用同一个无状态的迭代器,避免创建新的 closure 开销 在每次迭代中,for 循环都会用恒定状态和控制变量来调用迭代器函数 一个无状态的迭代器可以根据这两个值来为下次迭代生成下一个元素 a = {"one", "two", "three"} for i, v in ipairs(a) do pr...原创 2020-03-02 14:33:00 · 100 阅读 · 0 评论 -
lua学习之迭代器与泛型for 3
迭代器与泛型 for 3 具有复杂状态的迭代器 使用 closure 可以保存迭代器所需保存的所有状态 也可以将迭代器所需的所有状态打包为一个 table 并保存在 恒定状态中 在循环过程中 恒定状态 总是同一个 table 但这个 table 的内容却可以改变即在循环过程中改变 table 数据 由于这种迭代器可以保存所有数据将其存储到 恒定状态中,因此第二个参数 控制变量 可以忽略 lo...原创 2020-03-02 23:18:08 · 275 阅读 · 0 评论 -
lua学习之编译
编译 lua 是解释语言 但 lua 允许在运行源代码前,先将源代码编译为一种中间形式 区别解释语言的主要特征并不在于是否能编译它们 在于编译器是否是语言运行时库的一部分 是否有能力执行动态生成的代码 loadfile 函数 dofile 函数是一种内置的操作,用于运行 lua 代码块 dofile 仅是做了 loadfile的辅助工作 loadfile 会从一个文件加载 l...原创 2020-03-09 11:28:08 · 272 阅读 · 0 评论 -
lua学习之错误处理
错误处理 动态链接 在 Lua 中,动态链接被视为所有其他机制的母机制 因此利用它就可以动态地加载任何其他不在 Lua 中的机制 package.loadlib 所需两个参数 库的完整路径 正确的函数名称 loadlib 函数加载指定的库,并将其链接入 Lua 它没有调用库中的任何函数 而是将一个 C 编写的函数作为 Lua 函数返回 如果加载库或查找初始化函数时发...原创 2020-03-13 00:19:18 · 244 阅读 · 0 评论 -
lua学习前5章解惑
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...原创 2020-04-19 23:20:30 · 89 阅读 · 0 评论