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,安装重启

在这里插入图片描述

重启后编写代码,然后点击右上角Edit Configurations…配置启动项

在这里插入图片描述

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();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值