lua 學習目標是 能寫一些 lua指令碼。
redis 使用lua 5.1 版本。
lua是動態型別語言。
1.資料型別
空 nil 沒有賦值的變數或表的字段 都是nil
布林 boolean 包含 true 和 false
字串 string 如 'a' 或 "a"
表 table 既可以是 陣列 又可以是 字典
函式 function 可以 儲存在變數中, 作為函式引數,或返回結果
2. 變數
redis指令碼中 不能使用全域性變數,只允許使用區域性變數 防止指令碼之間相互影響。
local c
local d = 1
local e,f
local say_hi = function()
print 'hi'
end變數名 非數字開頭,只能包含字母,數字,下劃線,區分大小寫
local x= 10
if true then
local x= x+1
print(x)
dolocal x = x +1
print(x)
endprint(x)
endprint(x)
3. 注釋
--多行注釋
4. 賦值
local a,b = 1, 2
5. 操作符
(1) 數學 + - * / % - ^(冪運算)
(2) == ~= < > <= >=
(3) 邏輯操作符
not and or
(4). 連線操作符
print("hello" .. 'world')
(5). 取長度
print(#'hello')
6. if語句
if 條件表示式 then
else if 條件表示式 then
else
end7 迴圈
while 條件表示式 do
endrepeat
until 條件表示式
for有兩種方式
for 變數 = 初值 ,終值, 步長 do
語句塊end
其中步長,可以省略預設 1 如:
local sum = 0
for i = 1, 100 do
sum = sum + i
end--注意 i 是區域性變數 雖然 沒有local
for 通用形式如下:
8. 表型別
a = {}
a[1] = "bob"
a[2] = "jeff"
注意: lua 約定陣列的索引從 1開始
for index, value in ipairs(a) do
print(index)
print(value)
end也可以如下:
for i = 1, #a do
print(i)
print(a[i])
endpairs 來遍歷非陣列 (字典) 的錶值
9。 函式
local function square (...)
local argv =
for(i = 1, #argv do
argv[1] = argv[i] * argv[i]
endreturn unpack(argv) --相當於 return argv[1], argv[2],argv[3]
enda,b,c = square(1,2,3)
return 和 break語句 必須是語句塊 中的最後乙個語句, 後面只能是 end , else , until. 如果希望 在語句中間使用 ,則 可以使用 人為的 do 和 end 將其包圍
標準庫base
string
table
math
debug
redis支援大部分標準庫
其他庫cjson
cmsgpack
redis 包含著兩個庫 ,
對redis來說,通常不應該在指令碼中執行大量耗時的運算,因為reids是單程序單執行緒執行,而程式能多程序多執行緒執行。
lua基本語法
第乙個字母可以是大小寫字母或者下劃線,其他位除上述之外可以是數字 mohd zara abc move name a 123 myname50 temp j a23b9 retval and break do else elseif end false for function if in loca...
Lua 基本語法
lua 提供了互動式程式設計模式。我們可以在命令列中輸入程式並立即檢視效果。lua 互動式程式設計模式可以通過命令 lua i 或 lua 來啟用 root gitlab lua lua i 在命令列中,輸入以下命令,按下回車鍵,輸出結果如下 print hello world hello worl...
lua 基本語法
學習lua,首先應該了解熱更新。c 不能直接熱更新,原因為 c 指令碼在執行之前必須經過編譯。編寫lua 可使用luaforwindows軟體,安裝完成,開啟d lua 5.1 scite scite,即可進行程式設計。lua中的8中資料型別 資料型別 描述nil 這個最簡單,只有值nil屬於該類,...