Lua入门教程

Lua入门教程

  • 初识Lua
  • 变量和循环
  • 条件控制、函数

一、初始Lua

Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。官网:https://www.lua.org/

1.在Linux虚拟机的任意目录下,新建一个hello.lua文件

在这里插入图片描述

2.添加下面的内容

print('hello world!')

3.运行

在这里插入图片描述

二、变量和循环

1.数据类型

在这里插入图片描述

可以利用type函数测试给定变量或者值的类型:
在这里插入图片描述

2.变量

Lua声明变量的时候,并不需要指定数据类型:

-- 声明字符串
local str = 'hello'

-- 声明数字
local num = 21

-- 声明布尔类型
local flag = true

-- 声明数组 key为索引的 table
local arr = {'java', 'python', 'lua'}

-- 声明table,类似java的map
local map =  {name='Jack', age=21}

访问table:

-- 访问数组,lua数组的角标从1开始
print(arr[1])

-- 访问table
print(map['name'])
print(map.name)

3.数组、table都可以利用for循环来遍历:

  • 遍历数组:
-- 声明数组 key为索引的 table
local arr = {'java', 'python', 'lua'}

-- 遍历数组
for index,value in ipairs(arr) do
    print(index, value) 
end
  • 遍历table:
-- 声明map,也就是table
local map = {name='Jack', age=21}

-- 遍历table
for key,value in pairs(map) do
   print(key, value) 
end

三、条件控制、函数

1.定义函数的语法

function 函数名( argument1, argument2..., argumentn)
    -- 函数体
    return 返回值
end

例如,定义一个函数,用来打印数组:

function printArr(arr)
    for index, value in ipairs(arr) do
        print(value)
    end
end

2.条件控制

类似Java的条件控制,例如if、else语法:

if(布尔表达式)
then
   --[ 布尔表达式为 true 时执行该语句块 --]
else
   --[ 布尔表达式为 false 时执行该语句块 --]
end

与java不同,布尔表达式中的逻辑运算是基于英文单词:
在这里插入图片描述

3.案例

自定义函数,打印table
需求:自定义一个函数,可以打印table,当参数为nil时,打印错误信息

local function printArr(arr)
  if(not arr) then
    print('数组不能为空!')
    return nil
  end
  for i, val in ipairs(arr) do
    print(val)
  end
end
Lua 教程 lua Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 Lua 是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组于 1993 年开发的,该小组成员有:Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo。 设计目的 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 Lua 特性 轻量级: 它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里。 可扩展: Lua提供了非常易于使用的扩展接口和机制:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来就内置的功能一样。 其它特性: 支持面向过程(procedure-oriented)编程和函数式编程(functional programming); 自动内存管理;只提供了一种通用类型的表(table),用它可以实现数组,哈希表,集合,对象; 语言内置模式匹配;闭包(closure);函数也可以看做一个值;提供多线程(协同进程,并非操作系统所支持的线程)支持; 通过闭包和table可以很方便地支持面向对象编程所需要的一些关键机制,比如数据抽象,虚函数,继承和重载等。 Lua 应用场景 游戏开发 独立应用脚本 Web 应用脚本 扩展和数据库插件如:MySQL Proxy 和 MySQL WorkBench 安全系统,如入侵检测系统
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值