当前位置: 首页 > news >正文

Lua基础知识

文章目录

  • 1. Lua简介
    • 1.1 设计目的:
    • 1.2 特性
    • 1.3 应用场景
  • 2. Lua脚本学习
    • 2.1 安装
    • 2.2 lua操作
    • 2.3 lua案例

学习lua主要是为了后续做高性能缓存架构所准备的基础技术。可以先了解下基础,在实际使用时,再查缺补漏。

1. Lua简介

Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
Lua 是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组于 1993 年开发的,该小组成员有:Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo

1.1 设计目的:

为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。

1.2 特性

  • 小巧的脚本语言
  • 设计目的为了通过灵活嵌入应用程序中从而为应用程序提供灵活的扩展和定制功能
  • 所有的操作系统和平台上都可以编译,运行lua脚本
  • 所有脚本引擎中,Lua的速度是最快的

1.3 应用场景

  • 游戏开发
  • 独立应用脚本
  • 高性能Web应用(天猫、京东都有应用)
  • 扩展和数据库插件,如:MySQL proxy和MySQL WorkBench

2. Lua脚本学习

2.1 安装

curl -R -O http://www.lua.org/ftp/lua-5.4.6.tar.gz
tar -zxvf lua-5.4.6.tar.gz
cd lua-5.4.6
make all test# 这里替换使用新的lua版本
# 由于centos自带有lua,这里需要替换centos中lua旧版本
rm -rf /usr/bin/lua
ln -s /opt/local/lua-5.4.6/src/lua /usr/bin/lua

2.2 lua操作

Lua 是动态类型语言,变量不要类型定义,只需要为变量赋值。 值可以存储在变量中,作为参数传递或结果返回。
Lua 中有8个基本类型分别为:nil、boolean、number、string、userdata、function、thread 和 table。

数据类型描述
nil这个最简单,只有值nil属于该类,表示一个无效值(在条件表达式中相当于false)。
boolean包含两个值:false和true。
number表示双精度类型的实浮点数
string字符串由一对双引号或单引号来表示
function由 C 或 Lua 编写的函数
userdata表示任意存储在变量中的C数据结构
thread表示执行的独立线路,用于执行协同程序
tableLua 中的表(table)其实是一个"关联数组"(associative arrays),数组的索引可以是数字、字符串或表类型。在 Lua 里,table 的创建是通过"构造表达式"来完成,最简单构造表达式是{},用来创建一个空表。

2.3 lua案例

脚本 course.lua

--注释
--创建一个对象
local course = {}--在course对象中创建方法
function course.courseName(index)if index == 1 thenreturn "java"elsereturn "other"end
end--注意:一定要返回,否则会报错
return course

脚本student.lua

--接收参数arg1
local arg1 = tonumber(arg[1])
local cr = require("course")
print(cr.courseName(arg1))

测试:
在这里插入图片描述

http://www.lryc.cn/news/144466.html

相关文章:

  • Java Math方法记录
  • Java XPath 使用(2023/08/29)
  • el-table动态生成多级表头的表格(js + ts)
  • 四、Kafka Broker
  • ssm+vue医院医患管理系统源码和论文
  • 汽车电子笔记之:基于AUTOSAR的电机控制器架构设计
  • Docker 可以共享主机的参数
  • STL之list模拟实现(反向迭代器讲解以及迭代器失效)
  • Firewalld防火墙新增端口、开启、查看等
  • 【腾讯云 TDSQL-C Serverless 产品测评】- 云原生时代的TDSQL-C MySQL数据库技术实践
  • 计算机硬件基础
  • 云计算和Docker分别适用场景
  • oracle 基础运用2
  • ThinkPHP 资源路由的简单使用,restfull风格API
  • 利用前缀树获取最小目录
  • Java【手撕双指针】LeetCode 18. “四数之和“, 图文详解思路分析 + 代码
  • OpenCV处理图像和计算机视觉任务时常见的算法和功能
  • Flutter实现StackView
  • c++ future与promise
  • 在x86机器上的Docker运行arm64容器
  • centos7删除乱码文件
  • uni-app里使用webscoket
  • jdk17+springboot使用webservice,踩坑记录
  • 计算机网络文件拆分—视频流加载、断点续传
  • JVM 给对象分配内存空间
  • Excel·VBA二维数组组合函数、组合求和
  • 调用自实现MyGetProcAddress获得CreateFileA函数并调用创建写入文件
  • Leetcode 191.位1的个数
  • 安防监控视频平台EasyCVR视频汇聚平台调用接口出现跨域现象的问题解决方案
  • Python中的一些常用操作