Lua学习基础入门
Posted 恒哥~Bingo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lua学习基础入门相关的知识,希望对你有一定的参考价值。
Lua简介
Lua 是由巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组于1993年开发的一种轻量、小巧的脚本语言,用标准 C 语言编写,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
Lua的特性
- 轻量级: 它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里。
- 可扩展: Lua提供了非常易于使用的扩展接口和机制:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来就内置的功能一样。
- 其它特性:
- 支持面向过程(procedure-oriented)编程和函数式编程(functional programming);
- 自动内存管理;只提供了一种通用类型的表(table),用它可以实现数组,哈希表,集合,对象;
- 语言内置模式匹配;闭包(closure);函数也可以看做一个值;提供多线程(协同进程,并非操作系统所支持的线程)支持;
- 通过闭包和table可以很方便地支持面向对象编程所需要的一些关键机制,比如数据抽象,虚函数,继承和重载等。
官网:http://www.lua.org
Lua安装
Windows安装
下载地址:https://github.com/rjpcomputing/luaforwindows/releases
Linux安装
curl -R -O http://www.lua.org/ftp/lua-5.3.0.tar.gz
tar zxf lua-5.3.0.tar.gz
cd lua-5.3.0
make linux test
make install
安装IDE
Elicpse插件:https://www.eclipse.org/ldt/
Idea插件:在plugins菜单中搜索 EmmyLua,安装重启
Lua语法
Helloworld
print("Hello Lua")
注释
-- 单行注释
-- [[
多行注释
-- ]]
数据类型
Lua的数据类型有:
- number 只有double类型,占4字节
- string 单引号和双引号括起来
- boolean 包含true、false,nil也算false
- 空 nil
变量
包含全局变量和局部变量
-- 全局变量
num = 10;
print("num="..num)
-- 局部变量
local name = false;
-- 使用type获得数据类型
local myType = type(name)
print("type="..myType)
IF-ELSE
-- if-else
local age = 14;
local gender = "male";
if age >= 18 and gender == "female" then
print("女大十八变");
elseif age >= 18 and gender == "male" then
print("男大十八变");
else
print("小毛孩子");
end
WHILE循环
-- while循环
local i = 0
while i <= 100 do
print("i = "..i);
i = i + 1;
end
FOR循环
for 变量初始化,结束值,递增值
-- for循环
for i = 0,100,1 do
print("i = "..i);
end
函数
基本函数
-- 定义函数
function sum(n1,n2)
return n1 + n2;
end
local result = sum(22,33);
print(result);
Lua的函数可以返回多个结果
-- 返回多个结果
function getNumbers()
return 11,22,33;
end
local n1,n2,n3 = getNumbers();
print(n1,n2,n3);
闭包机制,函数也可以看做值
function func()
local num = 0;
-- 匿名函数
return function()
num = num + 2;
return num;
end
end
local foo = func();
print(foo())
print(foo())
print(foo())
数组
Lua的数组可以包含多种数据类型,甚至函数
下标是从1开始的
-- 数组
arr = "haha", 100, "hehe",function() print("hoho") return 99 end
print(arr[1],arr[2],arr[3],arr[4]())
使用for-in可以遍历下标和值
for k,v in pairs(arr) do
print(k,v)
end
面向对象
Lua支持面向对象的语法
-- 定义对象属性
local person = id = 1,name = "张三",age = 20;
print(person.id,person.name,person.age);
-- 定义对象方法
function person.sayHi()
print("我是"..person.name.."年龄"..person.age);
end
person.sayHi();
以上是关于Lua学习基础入门的主要内容,如果未能解决你的问题,请参考以下文章