Lua 語言



# Lua是一種輕量、小巧的腳本語言,用標准C語言編寫並以源碼形式開發。設計的摸底是為了嵌入到其他應用程序中,從而為應用程序提供靈活的拓展和定制功能。

# Lua安裝
# 官網:https://www.lua.org
# 1.官網下載源碼
wget https://www.lua.org/ftp/lua-5.4.3.tar.gz
# 2.編譯安裝
cd lua-5.4.3
make linux test
make install
# 3.如果test失敗,需要安裝
yum install -y readline-devel
# 4.驗證是否安裝成功
lua -v

# lua的語法和C/c++語法非常相似
# 交互式啟動lua。直接輸入lua命令就進入了lua的交互命令行
# 可以直接輸入print('hello world')

# 腳本式。創建的文件必須以.lua為后綴
# 執行腳本:lua abc.lua
# 或者你可以直接指定執行腳本
#! /usr/local/bin/lue
# 以下語法都兼容
a=1
b=a+2

a=1;
b=a+2;

a=1;b=a+2;

a=1 b=a+2

# 單行注釋
--print('hello world')

# 多行注釋
--[[
  print('hello world')
--]]

# 關鍵字:
and        break    do    else
elseif        end    false    for
function    if    in    local
nil        not    or    repeat
return        then    true    until
while        goto

# 運算符
# 算數運算符:
+加  -減  *乘  /除  %取余  ^乘冥  -負號

# 關系運算符
10==10        true
10~=10        false     不等於
20>10        true
20<10        false
20>=10        true
20<=10        false

# 邏輯運算符
and  邏輯與   A and B
or   邏輯或   A or B
not  邏輯非   取反

A=false
B=true
A and B     false
A or B      true

# 其他運算符
..   兩點用來鏈接兩個字符串:"hello ".."world"    輸出:hello world
#    井號是醫院運算符,返回字符串或者表的長度:#"hello"   輸出:5


# 全局變量&局部變量
# 在lua語言中,全局變量無需聲明即可使用。在默認情況下,變量總是認為是全局的,如果為提前賦值,默認為nil。
# 你想聲明局部變量需要用到local關鍵字
# 如:
local a = 100; print(a)

# lua數據類型
nil(空,無效值)
boolean(布爾,true/false)
number(數值)
string(字符串)
function(函數)
table(表)
thread(線程)
userdata(用戶數據)

# 你可以直接用type去查看
print(type(nil))        :string
print(type(true))        :boolean
print(type(1*1*1.1))        :number
print(type("hello world"))    :string
print(type(io.stdin))        :userdata
print(type(print))        :function
print(type(type))        :function
print(type(type{}))        :table
print(type(type{type(x)}))    :string

# 多行字符串的定義
html = [[
<html>
<title>
</title>
</html>
]]

# table類型
# 使用例子:
a = {}
arr = {"TOM","JERRY"}         :數組的訪問arr[1],lou下標是從1開始
b = {}
b['x'] = 1
b['y'] = 2            :字典的訪問:b['y']

arr = {"TOM",x=10,"Jerry",y=20}
# 如何獲取上面的值
TOM:arr[1]
10:arr['x']  或者 arr.x
Jerry:arr[3]
20:arr['y']  或者 arr.y

# function類型
# 聲明函數
function f(a,b)
  print(a,b)
end

# 調用:
f()        :nil nil
f(2)        :2 nil
f(2,6)        :2 6
f(2,6,8)    :2,6
# 函數參數隨便你怎么傳
# 可變參數&返回值
function add(...)
  a,b,c=...
  return c,b,a
end
a,b,c=add(1,2,3)

# if then elseif else控制語句
function testif(a)
  if a>0 then
    print("a是正數")
  end
end

function testif(a)
  if a>0 then
    print("a是正數")
  else
    print("a是負數")
  end
end

function testif(a)
  if a<0 then
    print("a是負數")
  elseif a==0 then
    print("a是0")
  elseif a>=1 and a<=10 then
    print("a是1到10之間")
  else
    print("else")
  end
end

# while循環
function testwhile()
  local i = 1
  while i<=10 do
    print(i)
    i=i+1
  end
end

# repeat循環  until條件滿足才退出循環
function testrepeat()
  local i=10
  repeat
    print(i)
    i=i-1
  until i < 1
end

# for循環
for i=1,100,10 do
  print(i)
end

arr = {"Tom", "jerry", "Rows"}
for i,v in ipairs(arr) do
  print(i,v)
end
# 輸出,i是索引,v是值:
1    Tom
2    jerry
3    Rows

arr = {"Tom", x="test", "jerry", "Rows"}
for i,v in pairs(arr) do
  print(i,v)
end
# 輸出,i是索引,v是值:
1    Tom
2    jerry
3    Rows
x    test

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM