Lua脚本语言

您所在的位置:网站首页 lua语言工具 Lua脚本语言

Lua脚本语言

2023-06-18 05:14| 来源: 网络整理| 查看: 265

在这里插入图片描述

1、LUA是一门脚本语言 ①、什么是脚本?

脚本语言又被称为扩建的语言,或者动态语言,是一种编程 语言,用来控制软件应用程序,脚本通常以文本(如ASCII)保存,只在 被调用时进行解释或编译

②、 脚本语言的执行

由于脚本语言是纯文本的,所以CPU无法直接执行脚本程序, 而是通过脚本解析器来执行脚本语言

③、优缺点

优点:快速开发、容易部署、易学易用、动态代码 缺点:不够全面、效率不高、构建代码结构性不高

④、常用的脚本语言

bash、python、JavaScript、Lua、PHP、ActionScript、Ruby……

2、LUA脚本 ①、定位

Lua天生的定位就是做为一门"胶水语言"出现的.它没有自己独立的环境, 必须依附在宿主语言的环境中才能起作用.所以从一开始,Lua就非常清楚自己的定 位:它不想自己做大,而是做的够精简够小,嵌入在宿主语言中,帮忙提供一些动态 特性

②、保存和运行

运行可以通过 Lua 的交互模式,也可以用记事本编辑代码保存为 .lua 的格式,通过 lua 编译器运行。也可以通过第三方工具,将 lua 打包独立运行。

③、特性

轻量级 — 轻量级Lua语言的官方版本只包括一个精简的核心和最基本的 库。这使得Lua体积小、启动速度快,从而适合嵌入在别的程序里。5.0.2版的Lua 的内核小于120KB,而Python的内核大约860KB,Perl的内核大约1.1MB。 可扩展 —可扩展 Lua并不象其它许多"大而全"的语言那样,包括很多功 能,比如网络通讯、图形界面等。但是Lua提供了非常易于使用的扩展接口和机制:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来就 内置的功能一样。 其它特性 — 支持面向过程和面向对象;自动内存管理;

在线学习 http://www.mcqyy.com/RunCode/lua/

3、LUA基本语法 ①、Lua 保留字(关键字)

and、 break、 do、 else、 elseif、 end、 false、 for、 function、 if、 in、 local、 nil、 not、 or、 return、 then、 true、( repeat、 until)、 while 注: Lua中没有continue

②、Lua符号

算术运算符 + -*/% ^ 求幂 - 取反 关系运算符 == ~= < > = 逻辑运算符 and or not 其他运算符 … # 其他符号 … 不定参数 . :

③、Lua 类型

1、nil 空类型 类似 C++中的nullptr_t 2、boolean 只有两个可选值:true(真) 和 false(假),Lua 把 false 和 nil 看作是 “假”,其他的都为“真” 3、number 默认只有一种 number 类型 – double(双精度)类型 4、string 字符串由一对双引号或单引号来表示 5、*table Lua 中的表(table)其实是一个“关联数组”(associative arrays),数组的 索引可以是数字或者是字符串 6、function 函数类型 函数可以存在变量里 7、thread 在 Lua 里,最主要的线程是协同程序。它跟线程差不多,拥有自己独立的栈、 局部变量和指令指针,可以跟其他协同程序共享全局变量和其他大部分东西。 8、userdata 是一种用户自定义数据,用于表示一种由应用程序或 C/C++ 语言库所创建的 类型,可以将任意 C/C++ 的任意数据类型的数据(通常是 struct 和 指针)存储到 Lua 变量中 调用

4、总结 1、脚本语言、执行、优缺点2、Lua脚本定位、特性 •3、基本语法,关键字、符号、类型 – 1、没有continue保留字 – 2、定义变量不需要类型,它被赋值成什么它就是什么类型,并且随时可以改变类型 – 3、number类型包含了整数和浮点数 – 4、string类型的值只能整体赋值,不能修改其中某个字符 – 5、string的表达方式很多 – 6、表类型其实只是保存表数据的引用,因此当表t1 = t2之后,改变t2,也就改变了t1, 改变了t1,也就改变了t2 – 7、table包含了数组和映射表 – 8、除法不像C语言 3/5不是0,而是0.6 – 9、and和or的操作结果不是boolean类型,而是参与运算的数据类型 – 10、在逻辑判断时,0不代表false,只有false和nil代表false – 11、函数可以返回多个值 – 12、可以对多个变量进行赋值 简单代码例子 -- -- 判断变量类型 -- a = 10.1 -- print(type(a)) -- print(type(true)) -- print(type(nil)) --只有nil 和false 是false -- print(type("aaaa")) -- function a1() --函数 -- end -- print(type(a1)) -- -- 字符串 -- str1 = "aaa" -- str2 = 'bbb' -- str3 =[[ -- ccc -- dddd -- ]] -- print(str1) -- print(str2) -- print(str3) -- print("2"+6) -- 字符串转为 number -- print("str"..1) -- ..拼接字符串 -- --变量交换 -- a = 10 -- b = 20 -- a,b = b,a -- print(a) -- print(b) -- table local t = {1,2,3,4,5,6} --声明局部表 t -- for i,v in ipairs(t) do -- print("i = " , i ,"v = " , v) -- end local t2 = { id = 1, name ="德玛西亚", atk = 10000 , def = 10000 } print(t2.id) print(t2.name) print(t2.atk) print(t2.def) print(t2["name"]) local t3 = {1,2,3,4,5,6,"aaaa",name = "孙悟空",7,8,9} --会将 有序内容 放到同一个空间,无序内容放入另一个空间 print(t3[8]) -- 表是从1 开始索引 function f1( a ) print("a = " ,a) a2 = 20000 return a,a2 end b ,b2 = f1(10000) print(b ,b2) -- and or 三目运算符 a = 100 b = 200 c = a > b and a or b print(c)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3