Lua学习笔记
文章平均质量分 86
Lua学习笔记
NGC_2070
纸上得来终觉浅,绝知此事要躬行!
展开
-
(Lua 笔记):Lua 协同程序(coroutine)
Lua 协同程序(coroutine)入门案例1创建并启动协程 定义协同函数 coroutine.create() 启动协同函数 coroutine.resume() co=coroutine.create( --创建协程函数 function (a,b) print(a+b) end)coroutine.resume(co,20,30) --启动协程函数入门案例2通过coroutine.wrap()创建协程并启动co=coroutine.wra...转载 2020-09-10 14:59:58 · 291 阅读 · 0 评论 -
(Lua 笔记):Lua 面向对象 [转]
【转】原文链接:https://www.runoob.com/lua/lua-object-oriented.html目录Lua 面向对象典型案例创建对象访问属性访问成员函数完整实例Lua 继承完整实例函数重写Lua 面向对象对象由属性和方法组成。 lua中最基本的结构是table,所以需要用table来描述对象的属性。 lua 中的 function 可以用来表示方法。 lua中的类可以通过 table + function 模拟出来。 .转载 2021-02-01 17:40:41 · 257 阅读 · 0 评论 -
(Lua 笔记):Lua 文件 I/O
目录Lua 文件 I/O简单模式完全模式Lua 文件 I/OLua I/O 库用于读取和处理文件简单模式(simple model) 拥有一个当前输入文件和一个当前输出文件,并且提供针对这些文件相关的操作 完全模式(complete model) 使用外部的文件句柄来实现。它以一种面对对象的形式,将所有的文件操作定义为文件句柄的方法 简单模式在做一些简单的文件操作时较为合适。但是在进行一些高级的文件操作的时候,简单模式就显得力不从心。 例如同时读取多个文件这样.转载 2020-09-10 00:27:52 · 206 阅读 · 0 评论 -
(Lua 笔记):Lua 元表(Metatable)
目录Lua 元表(Metatable)设置元表__index 元方法总结__newindex 元方法为表添加操作符__call 元方法__tostring 元方法Lua 元表(Metatable)在 table 中可以访问对应的key来得到value值,却无法对两个 table 进行操作。 Lua 提供了元表(Metatable),允许改变table的行为,每个行为关联了对应的元方法。 例如,使用元表可以定义Lua如何计算两个table的相加操作a+b。 对.转载 2020-09-09 23:14:01 · 255 阅读 · 0 评论 -
(Lua 笔记):C 包
C 包Lua和C是很容易结合的,使用 C 为 Lua 写包。 与Lua中写包不同,C包在使用以前必须首先加载并连接,在大多数系统中最容易的实现方式是通过动态连接库机制。 Lua在一个叫loadlib的函数内提供了所有的动态连接的功能。 这个函数有两个参数:库的绝对路径和初始化函数。 所以典型的调用的例子如下: local path = "/usr/local/lua/lib/libluasocket.so"local f = loadlib(path, "luaopen_socket.转载 2020-09-09 19:53:16 · 401 阅读 · 0 评论 -
(Lua 笔记):Lua 模块
Lua 模块模块类似于一个封装库,可以把一些公用的代码放在一个文件里,以 API 接口的形式在其他地方调用,有利于代码的重用和降低代码耦合度。 Lua 的模块是由变量、函数等已知元素组成的 table 因此创建一个模块很简单,就是创建一个 table,然后把需要导出的常量、函数放入其中,最后返回这个 table 就行。 以下为创建自定义模块 module.lua,文件代码格式如下:-- 文件名为 module.lua-- 定义一个名为 module 的模块module = {} .原创 2020-09-09 19:44:25 · 339 阅读 · 0 评论 -
(Lua 笔记):table定义、连接、插入、删除、排序
目录Lua表的定义table连接、插入、删除、排序table连接:table.concattable插入:table.inserttable移除:table.removetable排序:table.sortLua表的定义案例1:mytable = {}mytable[1] = "Lua" --表可以自动扩充mytable[1] = nil --删除第一个元素mytable = nil --删除表案例2:mytable = {} --创建空表.原创 2020-09-09 18:29:48 · 1863 阅读 · 0 评论 -
(Lua 笔记):迭代器函数
目录迭代器函数自定义迭代器函数迭代器函数pairs迭代table,遍历表中所有的key跟value ipars按照索引从1开始,递增遍历,遇到nil值就停止 案例1:array = {"Lua","C#","Java"}for k,v in pairs(array) do print(k,v)end输出:1 Lua2 C#3 Java案例2:array = {"Lua","C#","Java"}array[2]=nilfor k,v in ipai.原创 2020-09-09 17:45:00 · 339 阅读 · 0 评论 -
(Lua 笔记):Lua 数组案例
目录Lua 数组一维数组多维数组Lua 数组一维数组案例1:array = {"Lua","C#"}array[3]="Java"for i=1,3 do print(array[i])end输出:LuaC#Java案例2:array = {}for i =-2,2 do array[i]=i*3endfor i=-2,2 do print(array[i])end输出:-6-3036多维数组案例1:arr.原创 2020-09-09 17:00:17 · 222 阅读 · 0 评论 -
(Lua 笔记):Lua 字符串
目录Lua 字符串字符串操作字符串截取字符串大小写转换字符串查找与反转字符串格式化字符与整数相互转换Lua 字符串Lua 语言中字符串可以使用以下三种方式来表示: 单引号间的一串字符。 双引号间的一串字符。 [[与]]间的一串字符。 案例:string1 = "Lua"print("\"字符串 1 是\"",string1)string2 = 'runoob.com'print("字符串 2 是",string2)string3 = ...转载 2020-09-09 16:43:57 · 419 阅读 · 0 评论 -
(Lua 笔记):Lua 运算符
目录Lua 运算符算术运算符关系运算符逻辑运算符其他运算符运算符优先级Lua 运算符算术运算符下表列出了 Lua 语言中的常用算术运算符,设定 A 的值为10,B 的值为 20:案例a = 21b = 10c = a + bprint("Line 1 - c 的值为 ", c )c = a - bprint("Line 2 - c 的值为 ", c )c = a * bprint("Line 3 - c 的值为 ", c )c = a / b.转载 2020-09-09 15:30:08 · 3235 阅读 · 0 评论 -
(Lua 笔记):Lua函数
Lua 函数函数定义 定义格式如下: [local] function functionName(arg1,arg2,arg3.....argn) functionBody [return value1,value2.....valuen]end案例1local function max(num1,num2) if(num1>num2)then return num1 else return num2 endendprint( max(1,10) ).原创 2020-09-09 15:05:08 · 274 阅读 · 0 评论 -
(Lua 笔记):流程控制
目录Lua 流程控制if 语句if...else 语句if...elseif...else 语句Lua 流程控制控制结构的条件表达式结果可以是任何值,Lua认为false和nil为假,true和非nil为真。 注意Lua中 0 为 true:--[ 0 为 true ]if(0)then print("0 为 true")end输出:0 为 trueif 语句语法格式:if(布尔表达式)then --[ 在布尔表达式为 true 时执行的语.原创 2020-09-09 13:41:25 · 140 阅读 · 0 评论 -
(Lua 笔记):while、for、repeat...until 循环、循环嵌套
目录while 循环for循环数值for循环泛型for循环repeat...until 循环循环嵌套while 循环while 循环语句在判断条件为 true 时会重复执行循环体语句 while 循环语法:while(condition)do statementsendstatements(循环体语句)可以是一条或多条语句,condition(条件)可以是任意表达式,在condition(条件)为 true 时执行循环体语句。 案例:a=...原创 2020-09-09 13:19:41 · 1562 阅读 · 0 评论 -
(Lua 笔记):lua变量、赋值语句
目录Lua 变量赋值语句索引Lua 变量变量在使用前,需要在代码中进行声明,即创建该变量。 Lua 变量有三种类型:全局变量、局部变量、表中的域。 Lua 中的变量全是全局变量,无论是语句块或是函数里,除非用 local 显式声明为局部变量。 局部变量的作用域为从声明位置开始到所在语句块结束。 变量的默认值均为 nil。-- test.lua 文件脚本a = 5 -- 全局变量local b = 5 -- 局部变量func.原创 2020-09-09 12:21:48 · 1242 阅读 · 0 评论 -
(Lua 笔记):Lua 数据类型
目录Lua 数据类型nil(空)boolean(布尔)number(数字)string(字符串)table(表)function(函数)thread(线程)userdata(自定义类型)Lua 数据类型Lua 是动态类型语言,变量不要类型定义,只需要为变量赋值。 值可以存储在变量中,作为参数传递或结果返回。nil 只有值nil属于该类,表示一个无效值(在条件表达式中相当于false)。 boolean 包含两个值:...原创 2020-09-09 01:54:29 · 394 阅读 · 0 评论 -
(Lua 笔记):注释、标识符命名、关键词、全局变量
目录Lua的注释标示符命名规则关键词全局变量Lua的注释单行注释:两个减号是单行注释:-- Lua单行注释多行注释--[[lua多行注释--]]技巧:若需要用到多行注释中的代码,可以通过增加 “-” 取消注释---[[lua多行注释---]]标示符命名规则Lua 标示符用于定义一个变量,函数获取其他用户定义的项。 标示符以一个字母 A 到 Z 或 a 到 z 或下划线 _ 开头后加上0个或多个字母,下划线,数字(0到9)。 最好不要使用下划线.原创 2020-09-08 23:34:22 · 477 阅读 · 0 评论 -
(Lua 笔记):Lua安装
目录Lua安装Window 系统上安装 Lua第一个Lua程序 - HelloWorldLua安装Lua官网:www.lua.org Lua中文网站:http://www.luaer.cn/ 学习参考网址:http://www.runoob.com/lua/lua-tutorial.htmlWindow 系统上安装 Luawindow下可以使用一个叫"SciTE"的IDE环境来执行lua程序,下载地址为: 下载地址:LuaForWindows_v5.1.4-46.ex.原创 2020-09-08 23:11:03 · 305 阅读 · 0 评论