lua
小麦大大
写写代码纪录生活
展开
-
skynet(第一篇)
本文来自:https://blog.csdn.net/qq769651718/article/details/79432809(翻译,学习用)1、在ubuntu上搭建skynet2 、获取skynet源代码安装git代码管理工具 $ sudo apt-get update $ sudo apt-get install git 注意:如果安装失败,请先安装一下只支持库 $ sudo apt-get install build-essential libssl-dev libcurl4-翻译 2022-03-16 16:10:29 · 2527 阅读 · 0 评论 -
Lua打印表日志
-- 打印一个tablefunction PrintTable(tbl, level) level = level or 1 local indent_str = "" for i = 1, level do indent_str = indent_str.." " end print(indent_str .. "{") for k,v in pairs(tbl) do local item_str = string.原创 2021-12-03 13:54:33 · 829 阅读 · 0 评论 -
Lua连接Mysql
Window 下安装 LuaRocks:https://github.com/keplerproject/luarocks/wiki/Installation-instructions-for-Windowsrequire "luasql.mysql"--创建环境对象env = luasql.mysql()--连接数据库conn = env:connect("数据库名","用户名","密码","IP地址",端口)--设置数据库的编码格式conn:execute"SET NAMES UTF翻译 2021-04-01 14:20:49 · 452 阅读 · 0 评论 -
Lua洗牌算法
cKnuth-Durstenfeld Shuffle(复杂度(n)-- 设置随机数种子math.randomseed(tonumber(tostring(os.time()):reverse():sub(1,6))) -- 洗牌算法function shuffle(targetTbl) local tblLen = #targetTbl while(tblLen > 0) do local idx = math.random(tblLen)原创 2020-12-01 16:13:14 · 466 阅读 · 0 评论 -
Lua中使用math.floor注意小数问题
local testNum1 = 38.48print("testNum1 = ", testNum1) local testNum2 = testNum1 * 100print("testNum2 = ", testNum2) local testNum3 = math.floor(testNum2)print("testNum3 = ", testNum3) --[[testNum1 = 38.48testNum2 = 3848testNum3 = 3847 -- 问题出翻译 2020-12-01 15:44:08 · 3576 阅读 · 1 评论 -
Lua中的浅拷贝和深拷贝
浅拷贝在Lua中,使用赋值运算符"="进行浅拷贝的时候,分两种情况:1、拷贝对象的类型是string、number、boolean这些基本类型的时候,会进行复制,创建一个新的对象,拷贝出来的对象和原来的对象互不影响,所以修改拷贝出来的对象的值不会影响到原来的对象的值!2、拷贝对象的类型是table的时候,则是直接进行引用,拷贝出来的对象和原来的对象实际上是同一个对象,所以修改拷贝出来的对象中的元素的值也会使原来的对象中元素的值发生改变!-- numberlocal numTest1 = 5翻译 2020-12-01 15:19:44 · 647 阅读 · 0 评论 -
Lua空表判断
Lua空表判断注意项:在项目的脚本lua中经常有这样的需求,1、local a = {}2、对a进行处理3、对a是否为空表进行判断关于对a是否为空表的判断,我发现有些代码如此做:if a == {} then这样的结果就是a == {}永远返回false,是一个逻辑错误。因为这里比较的是table a和一个匿名table的内存地址。也有些代码如此做:if table.maxn(a) == 0 then这样做也不保险,除非table的key都是数字,而没有hash部分。难道真的翻译 2020-08-22 14:57:24 · 1519 阅读 · 0 评论 -
Lua中pairs和ipairs的差别
正常情况下,使用pairs和ipairs遍历table或数组,没有任何的区别,如下示例所示:local tbl1 = { "apple", "pear", "orange", "grape" }print("=============ipairs的执行结果=============")for i, v in ipairs(tbl1) do print(i, '=', v)endprint("=============pairs的执行结果==============")for i, v i转载 2020-08-07 10:40:27 · 1696 阅读 · 0 评论 -
Lua 运算符(学习笔记)
Lua 运算符运算符是一个特殊的符号,用于告诉解释器执行特定的数学或逻辑运算。Lua提供了以下几种运算符类型:算术运算符关系运算符逻辑运算符其他运算符算术运算符下表列出了 Lua 语言中的常用算术运算符,设定 A 的值为10,B 的值为 20: 算术运算符 下表列出了 Lua 语言中的常用算术运算符,设定 A 的值为10,B 的值为 20:a = 21...原创 2018-08-21 21:09:31 · 2149 阅读 · 0 评论 -
Lua 函数(学习笔记)
Lua 函数在Lua中,函数是对语句和表达式进行抽象的主要方法。既可以用来处理一些特殊的工作,也可以用来计算一些值。 Lua 提供了许多的内建函数,你可以很方便的在程序中调用它们,如print()函数可以将传入的参数打印在控制台上。 Lua 函数主要有两种用途: 1.完成指定的任务,这种情况下函数作为调用语句使用; 2.计算并返回值,这种情况下函数作为赋值语句的表达式使用。函数...原创 2018-08-21 20:26:32 · 137 阅读 · 0 评论 -
Lua 数组(学习笔记)
Lua 数组数组,就是相同数据类型的元素按一定顺序排列的集合,可以是一维数组和多维数组。 Lua 数组的索引键值可以使用整数表示,数组的大小不是固定的。 一维数组 一维数组是最简单的数组,其逻辑结构是线性表。一维数组可以用for循环出数组中的元素,如下实例:array = {"Lua", "Tutorial"}for i= 0, 2 do print(array[i])...原创 2018-08-22 16:29:50 · 2504 阅读 · 0 评论 -
Lua 迭代器(学习笔记)
Lua 迭代器迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址 在Lua中迭代器是一种支持指针类型的结构,它可以遍历集合的每一个元素。泛型 for 迭代器泛型 for 在自己内部保存迭代函数,实际上它保存三个值:迭代函数、状态常量、控制变量。 泛型 for 迭代器提供了集合的 key/value 对,语法...原创 2018-08-22 16:42:27 · 138 阅读 · 0 评论 -
lua table(表)学习笔记
Lua table(表)table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数组、字典等。 Lua table 使用关联型数组,你可以用任意类型的值来作数组的索引,但这个值不能是 nil。 Lua table 是不固定大小的,你可以根据自己需要进行扩容。 Lua也是通过table来解决模块(module)、包(package)和对象(Object)的。 例如stri...原创 2018-08-22 17:03:58 · 140 阅读 · 0 评论 -
lua设计目的和应用场景介绍
设计目的其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua 特性轻量级: 它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里。 可扩展: Lua提供了非常易于使用的扩展接口和机制:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来就内置的功能一样。 其它特性: 支持面向过程(procedu...原创 2018-08-21 14:34:24 · 3539 阅读 · 0 评论 -
lua基本语法(学习笔记)
脚本式编程我们可以将 Lua 程序代码保持到一个以 lua 结尾的文件,并执行,该模式称为脚本式编程,如我们将如下代码存储在名为 hello.lua 的脚本文件中:print("Hello World!")print("www.baidu.com") 使用 lua 名执行以上脚本,输出结果为:$ lua hello.luaHello World!www.baidu.com...原创 2018-08-21 14:45:04 · 270 阅读 · 0 评论 -
Lua 数据类型(学习笔记)
概述:Lua是动态类型语言,变量不要类型定义,只需要为变量赋值。 值可以存储在变量中,作为参数传递或结果返回。 Lua中有8个基本类型分别为:nil、boolean、number、string、userdata、function、thread和table。 print(type("Hello world")) --> stringprint(type(10.4*3))...原创 2018-08-21 15:45:13 · 299 阅读 · 0 评论 -
Lua变量(学习笔记)
Lua 变量变量在使用前,必须在代码中进行声明,即创建该变量。 编译程序执行代码之前编译器需要知道如何给语句变量开辟存储区,用于存储变量的值。 Lua 变量有三种类型:全局变量、局部变量、表中的域。 Lua 中的变量全是全局变量,那怕是语句块或是函数里,除非用 local 显式声明为局部变量。 局部变量的作用域为从声明位置开始到所在语句块结束。 变量的默认值均为 nil。 ...原创 2018-08-21 16:51:09 · 178 阅读 · 0 评论 -
Lua 循环(学习笔记)
Lua 循环很多情况下我们需要做一些有规律性的重复操作,因此在程序中就需要重复执行某些语句。 一组被重复执行的语句称之为循环体,能否继续重复,决定循环的终止条件。 循环结构是在一定条件下反复执行某段程序的流程结构,被反复执行的程序被称为循环体。 循环语句是由循环体及循环的终止条件两部分组成的。 Lua 语言提供了以下几种循环处理方式:循环控制语句循环控制语句用于控...原创 2018-08-21 17:39:09 · 1297 阅读 · 0 评论 -
Lua 流程控制(学习笔记)
流程控制Lua 编程语言流程控制语句通过程序设定一个或多个条件语句来设定。在条件为 true 时执行指定程序代码,在条件为 false 时执行其他指定代码。 要注意的是Lua中 0 为 true:--[ 0 为 true ]if(0)then print("0 为 true")end以上代码输出结果为:0 为 truea if…else 语句语法格式如下...原创 2018-08-21 19:51:39 · 245 阅读 · 0 评论 -
Lua 字符串(学习笔记)
Lua 字符串字符串或串(String)是由数字、字母、下划线组成的一串字符。 Lua 语言中字符串可以使用以下三种方式来表示: 单引号间的一串字符。 双引号间的一串字符。 [[和]]间的一串字符。 以上三种方式的字符串实例如下:string1 = "Lua"print("\"字符串 1 是\"",string1)string2 = 'runoob.com'print(...原创 2018-08-22 16:19:55 · 241 阅读 · 0 评论