Lua语言基础知识,入门必看

文章更新于:2020-05-13
注:Lua 参考手册:https://amnot.lanzous.com/ickqlwb

Content

    • 一、下载安装配置环境
      • 1.1、下载
      • 1.2、安装
    • 二、语法&概念
      • 2.1、关键字
      • 2.2、流程控制
      • 2.3、数据类型
      • 2.4、字符串
        • 表示方法
        • 字符串函数
      • 2.5、数组
      • 2.6、Lua 迭代器
      • 2.7、table(表)
      • 2.8、模块与包
      • 2.9、元表(Metatable)
      • 2.10、协同程序(coroutine)
      • 2.11、文件 I/o
      • 2.12、错误处理
      • 2.13、调试(debug)
      • 2.14、垃圾回收
      • 2.15、面向对象
      • 2.16、数据库访问
    • 三、Enjoy!

一、下载安装配置环境

1.1、下载

  1. 可以去官网:http://www.lua.org/download.html 下载
  2. 也可以使用文首提供的链接

1.2、安装

Windows 安装将下载的文件解压之后,路径配置环境变量即可使用。

二、语法&概念

2.1、关键字


and

break

do

else

elseif

end

false

for

function

if

in

local

nil

not

or

repeat

return

then

true

until

while

2.2、流程控制


判断

if
a = 3
if a == 3 then
	print("a = 3")
end
# a = 3

判断

if else
a = 3
if a == 3 then
	print("a = 3")
else
	print("a != 3")
# a = 3

判断

if else if
a = 4
if a == 3 then
	print("a = 3")
else if a == 4 then
	print("a = 4")
else
	print("a != 3 and a != 4")
# a = 4

循环

while
sum = 0
i = 1
while(i <= 100) do
	sum = sum + i
	i = i + 1
end
print(sum)
# 5050

循环

for
sum = 0
for i = 1, 100 do
	sum = sum + i
end
print(sum)
# 5050

循环

repeat
sum = 0
i = 1
repeat
	sum = sum + i
	i = i + 1
until(i > 100)
print(sum)
# 5050

循环

break
while(true) do
	print("true")
	break
end
# true

2.3、数据类型


nil

boolean

number

string

function

userdata

thread

table
数据类型 描述
nil 无效值,相当于 Null
boolean 布尔值,只有 truefalse 两种
number 双精度类型的实浮点数
string 字符串类型,需要双引号或单引号括起来
function 函数类型
userdata 表示任意存储在变量中的 C 数据结构
thread 用于执行协同程序独立线路
table 表(table),唯一的数据结构。可以借此创造出各种类型,比如数组和字典

2.4、字符串

表示方法

  1. 使用单引号括起来:hello,world
  2. 使用双引号括起来:"hello,world"
  3. 使用双中括号括起来:[[hello,world]]

字符串函数

函数 描述
string.upper(argument) 全部转换为大写
string.lower(argument) 全部转换为小写
string.gsub(mainString, findString, replaceString, num) 替换字符串
string.strfind(str, substr,[init,[end]]) 查找字符串
string.reverse(argument) 翻转字符串
string.format(...) 格式化输出字符串
string.char(argument) ascii 数字转换为字符
string.byte(argument, [,int]) ascii 字符转换为数字
string.len(argument) 计算字符串长度
string.rep(string, n) 重复 n 次字符串
.. 连接两个字符串

2.5、数组

数组,就是相同数据类型的元素按一定顺序排列的集合,可以是一维数组和多维数组。

声明一个一维数组:

array = {"Lua", "Tutorial"}

lua 数组索引默认从 1 开始,
不过你可以指定从 0 开始,也可以从负数开始。

声明一个二维数组:

-- 初始化数组
array = {}
for i=1,3 do
   array[i] = {}
      for j=1,3 do
         array[i][j] = i*j
      end
end
 
-- 访问数组
for i=1,3 do
   for j=1,3 do
      print(array[i][j])
   end
end

使用行列数计算索引键防止出现 nil

-- 初始化数组
array = {}
maxRows = 3
maxColumns = 3
for row=1,maxRows do
   for col=1,maxColumns do
      array[row*maxColumns +col] = row*col
   end
end
 
-- 访问数组
for row=1,maxRows do
   for col=1,maxColumns do
      print(array[row*maxColumns +col])
	  print('index is: ',row*maxColumns +col)
   end
end

2.6、Lua 迭代器

在Lua中迭代器是一种支持指针类型的结构,它可以遍历集合的每一个元素。
泛型 for 在自己内部保存迭代函数,实际上它保存三个值:迭代函数、状态常量、控制变量。

演示示例:

array = {"Lua", "Tutorial"}
 
for key,value in ipairs(array) 
do
   print(key, value)
end
# 1 Lua
# 2 Tutorial

2.7、table(表)

2.8、模块与包

2.9、元表(Metatable)

2.10、协同程序(coroutine)

2.11、文件 I/o

2.12、错误处理

2.13、调试(debug)

2.14、垃圾回收

2.15、面向对象

2.16、数据库访问

支持的数据库有:ODBC, ADO, Oracle, MySQL, SQLite 和 PostgreSQL。

三、Enjoy!

你可能感兴趣的:(计算机科学)