UH2S1L9——多Lua脚本执行
UH2S1L9——多Lua脚本执行 本章代码关键字 12345local --声明局部变量return --脚本返回值,外部加载该脚本时可以接收这里的返回值require() --加载一个脚本,若加载脚本有返回值还可以返回出这个值package.loaded[] --可以查看某个脚本是否被加载,将其赋值nil可以卸载某个脚本_G --_G表是一个总表,我们申明的所有全局变量都存储在其中 全局变量和本地变量 全局变量 Lua默认声明出来的变量是全局变量,这是一种声明出来后就可以在脚本里到处调用的变量, 即使它是在循环体或者函数体内声明的变量,出了循环或者函数仍然可以使用,不会释放内存 显然到处使用全局变量是很浪费内存的 1234567891011for i = 1, 2 do c = "唐老狮"endprint(c) --这个c在出了循环体后依然可以调用function Fun() tt =...
UH2S1L8——表
UH2S1L8——表 注: 笔者学习这节课并记下本篇笔记时,使用的 Lua 是从 github 上下载的 LuaforWindows,版本为 Lua 5.1.5 本篇笔记中记录的所有奇怪的“特性”,都是基于该版本的 Lua 产生的,笔者将这些学习中遇到的情况忠实的记录了下来 笔者不保证非 LuaforWindows 的 Lua 或者更高版本的 Lua 也会出现这种问题, 如果没遇到本笔记中记录的奇怪特性,应该是 Lua 版本不一致导致的 表 表(table)是Lua中非常重要的复杂数据类型,在Lua中所有的复杂类型都是table 诸如数组,字典,甚至面向对象的类都需要通过它来实现 另外记住,Lua的索引从1开始!(反程序员.jpg) 本章代码关键字 1234567891011tableVar = {} --表的声明#tableVar --获取表长度,不准确tableVar[] ...
UH2S1L7——函数
UH2S1L7——函数 函数 在Lua中,函数也是一种变量类型,而Lua的函数声明不需要指定返回值的类型 123function 函数名(参数列表) 函数代码块end 123函数名 = function(参数列表) 函数代码块end 要注意,由于Lua是解释型语言,解释器从上到下执行代码,因此调用函数不能在函数声明之前,否则会报错 无参无返回值 12345678910print("**********无参无返回值************")function F1() print("F1函数")endF1()F2 = function() ...
UH2S1L6——循环语句
UH2S1L6——循环语句 本章代码关键字 123while...do...end --这里的条件是循环条件,满足条件才进入代码块,执行完毕后再次进行比较repeat...until... --这里的条件是跳出条件,满足条件就跳出代码块,不满足条件就再执行一次代码块for...do...end --循环变量 = 起始值, 结束值, 步长(默认1) while循环 while循环的结构如下: 12345while 循环条件表达式 do 当满足条件时就会执行该语句块的内容 ...... 当代码逻辑执行完,再次进行条件判断,符合条件就继续回到开头重新执行方法end 例子 12345num = 0while num < 5 do print(num) num = num +...
UH2S1L5——条件分支语句
UH2S1L5——条件分支语句 本章代码关键字 123if...then...end --单分支if...then...else...end --双分支if...then...elseif...then......else...end --多分支 单分支 不同语言的条件分支语句作用基本一致,无非关键字不同 在Lua中,单分支语句结构如下,条件表达式可以使用各种运算符,最终需要返回一个boolean类型的值: 123if 条件表达式 then 满足条件时执行的代码块end 例子: 12345a = 9-- 单分支 if...then...endif a > 5 then print("满足条件")end 1满足条件 双分支 在Lua中,双分支语句结构如下: 12345if 条件表达式 then 满足条件时执行的代码块else 不满足条件时执行的代码块end 例子: 1234567a = 9-- 双分支...
UH2S1L4——运算符
UH2S1L4——运算符 算数运算符 在lua中有:+ - * / % ^这些算数运算符,用于数学运算 注意,lua没有自增自减++ --,也没有复合运算符+= -= ...,^符号在Lua中是幂运算符号,而非异或运算符!!! 同时,与C#不同,如果字符串是数字形式的,如"123",则在可以与number类型的数字进行算数运算符运算,字符串会自动转为number类型 两个数字形式的字符串使用算数运算符运算也是会和计算数字那样计算,这也是为什么字符串拼接会采用..这种符号的原因 1234567891011121314151617181920212223242526print("**********算数运算符************")-- + - * / % ^-- 没有自增自减-- 没有复合运算符a = 1b = 2print("加法运算:" .. a + b)print("字符串与数字加法运算:" .. "123.4" + 1) ...
UH2S1L3——字符串操作
UH2S1L3——字符串操作 本章代码关键字 123456789101112131415161718#str --获取字符串长度"\n" --换行字符[[多行字符串]].. --字符串拼接string.format() --格式化字符串tostring() --其他类型转字符串string.upper() --小写转大写string.lower() --大写转小写string.reverse() --翻转字符串string.find() --字符串查找索引string.sub() --截取字符串string.rep() --重复拼接字符串string.gsub() --字符串替换string.byte() --字符转ASCII码string.char() ...
UH2S1L2——变量
UH2S1L2——变量 本章代码关键字 12345nil --空number --数字string --字符串boolean --布尔值type() --获取类型函数,返回字符串 关于变量声明 Lua的变量声明与C#不同,是不需要在变量前指定变量类型的 它会根据赋值的内容自动判断变量类型,这有点类似于C#中的var 1a = 123 --值得一提的是,这样声明出来的是全局变量,貌似在Lua的代码约定里,全局变量首字母要大写,不过学习阶段暂时无所谓这个 lua中使用没有声明过的变量,不会报错,默认值是****nil 12print("**********变量**********")print(b) 输出: 12**********变量**********nil 简单变量类型 Lua中的简单变量类型包括:nil、number、string、boolean 以后会学习的复杂数据类型包括: 函数 function 表 table 数据结构...
UH2S1L1——基本语法
UH2S1L1——基本语法 本章代码关键字 1234567891011121314151617181920print() --控制台输出-- 单行注释--[[多行注释]]--[[第二种多行注释]]----[[第三种多行注释--]] 关于分号 与C#不同,在lua里不需要使用分号 控制台输出 可以传入多个参数,甚至是表,输出时会自动用制表符隔开这些值 1print("你好世界") 注释 使用--作为单行注释 1-- 单行注释 使用--[[...]]作为多行注释,这种注释还有多种变形 12345678910111213141516--[[多行注释]]--[[第二种多行注释]]----[[第三种多行注释--]]
UH2S1——Lua
UH2S1——Lua Lua Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 Lua 解释器很小,因此可以轻松嵌入到项目内, 又因为解释性语言只需要替换脚本文件即可改变逻辑,因此 Lua 是早期热更新技术的不二之选 Lua 是 Lua 相关热更新方案的前置内容,唯有掌握 Lua 语法才能使用 Lua 相关的热更新方案 本系列学习内容 基本语法 变量 字符串操作 运算符 条件分支语句 循环语句 函数(变长,嵌套闭包,多返回值) 表(实现数组,字典,类,可以遍历) 多Lua脚本执行 特殊用法(多变量赋值、三目运算符) 协同程序 元表(__index, tostring, newindex) Lua面向对象 自带库 垃圾回收 Lua的环境搭建 在 Windows 电脑上,直接在Github上下载 LuaforWindows的安装包 并安装即可,与课程不同,笔者会直接使用VSCode来进行Lua语法的学习 VSCode 摆烂配置 Lua 如果仅仅是学习语法,你可以摆烂选择安装...