Lua語言基礎知識,入門必看

文章更新於:2020-05-13
注:Lua 參考手冊:https://amnot.lanzous.com/ickqlwb

一、下載安裝配置環境

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!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章