随笔分类 - Lua脚本语言
摘要:垃圾收集 1. 自动内存管理。通过垃圾收集(garbage collection)自动地删除垃圾。避免无效指针(dangling pointer)、内存泄露(memory leak)等bug。 2. 在一个理想的环境中,垃圾收集器对程序员来说是不可见的,就像一个好的清洁工不会 和其他工人打交道一样。
阅读全文
摘要:元表和元方法。 1. 用例一,两个表相加。 机理描述:先检查两者之一是否有元表( metatable )且该元表中是否有 __add 字段。 如果找到了 该字段,就调用该字段对应的值,即所谓的元方法( metamethod ) (是一个函数)。 2. 元表只能给出预先定义的操作集合的行为,比较受限。
阅读全文
摘要:再次说明,没有范围定语情况下,此处(所有lua笔记)的使用说明书都限在“Lua语言中”。 1. 类:1. 大多数面向对象语言提供了类的概念,类在对象的创建中扮演了模子( mold )的作用。 在这些语言中,每个对象都是某个特定类的实例( instance )。 2. Lua 语言中没有类的概念; 但
阅读全文
摘要:1. 对象创建: 2. 进阶: 对象的方法有修改, 修改带来的好处,自由创建多个对象: 方法调用写法优化: 进而,函数声明优化: 注:使用参数 self 是所有面向对象语言的核心点。 大多数面向对象语言都向程序员隐藏了这 个机制,从而使得程序员不必显式地声明这个参数(虽然程序员仍然可以在方法内使用
阅读全文
摘要:1. 迭代器示例: 2. 同样功能示例: 3. 另一个例子,写一个按照键的顺序来遍历表的迭代器
阅读全文
摘要:1. 捕获用法 +1,空白捕获 () 举例, 注:与find返回的结果不一致。 2. 捕获 另一个好的示例, 注: 这个函数首先对字符串进行了制表符展开以移除其中所有的制表符,然后构造出一个用于匹 配所有 8 个字符序列的辅助模式,再利用这个模式在每 8 个字符后添加一个标记 (控制字 符\1 )。
阅读全文
摘要:模式继捕获之后,说下替换的使用说明。 1.所有出现 $varname 替换为全局变量 varname 的值。如果没有对应匹配,不替换。 注: _G 是预先定义的包括所有全局变量的表 2. 格式转换器举例,加深理解: 4. url编码举例,加深理解: url编码:HTTP所使用的在 URL 中传递参数
阅读全文
摘要:1. 捕获:根据一个模式从目标字符串中抽出与该模式匹配的内容。放到圆括号中用来指定捕获模式。 2. 比如string.match。 3. %n 表示匹配第n个捕获的副本。 4. 捕获 在gsub的应用: %0代表整个匹配
阅读全文
摘要:1. Lua实现模式匹配,没有使用POSIX正则表达式和Perl正则表达式。 一个典型的POSIX正则实现需要超过4000多行代码,比所有Lua语言标准库总大小的一半还大。 Lua实现模式匹配代码不到600行。不如POSIX强大,但够用。 字符串标准库基于模式4个函数:find(返回出现模式的位置)
阅读全文
摘要:1. 词法定界: 定界:指变盘与变量所对应实体之间绑定关系的有效范围, 在部分情况下也常与可见性 ( visibility )混用。 词法定界也被称为静态定界( static scoping ),常常与动态定界( dynamic scoping )比较。 其中 前者被大多数现代编程语言采用,后者常见
阅读全文
摘要:1. 交互模式运行lua时,由于一行就是一个命令,当用到局部变量就行不通了。可以采用do end。do命令执行后,匹配到end才结束。 2. 局部变量比全局变量快。局部变量随着其作用域结束而消失,垃圾收集器能将其释放。 3. 常用用法:local foo = foo -- 声明了一个局部变量 foo
阅读全文
摘要:1. 当函数只有一个参数且该参数是字符串常量或表构造器时,括号是可选的:print "abc" 2. 函数参数的执行行为,举例:function f (a, b) print(a, b) end f () --> nil nil f(3) --> 3 nil f(3, 4) --> 3 4 f(3,
阅读全文
摘要:1. 字符串标准库 string.len()等价于 string.sub()的参数可以是负数,代表从末尾倒数计数。 string.format()指示符由一个百分号和一个字母组成,同c语言printf。d:十进制整数 x:十六进制整数 f:浮点数 s:字符串 %.4f:小数点后保留4位小数 %02d
阅读全文
摘要:1. 取整函数(floor、 ceil 和 modf): floor 向负无穷取整, ceil 向正无穷取整, modf 向零取整。 > math.floor(3.3) --> 3 > math.floor(-3.3) - -> -4 > math.ceil(3.3) --> 4 > math.ce
阅读全文
摘要:1.函数 dofile 在开发阶段也非常有用。 我们可以同时打开两个窗口,一个窗口中使用文 件编辑器编辑的代码(例如文件 p「og. lua ),另一个窗口中使用交互模式运行 Lua 语言解释 器。 当修改完代码并保存后,只要在 Lua语言交互模式的提示符下执行 dofile(”prog.lua”)
阅读全文
摘要:Lua语法 1.注释 -- 2.默认全局变量,不需要声明。删除变量赋值为nil Lua 中的变量全是全局变量,哪怕是语句块或是函数里,除非用 local 显式声明为局部变量。 动态类型语言 3.8个基本类型nil、boolean、number、string userdata、function、thr
阅读全文

浙公网安备 33010602011771号