最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Lua語言新手簡單入門教程

 更新時間:2018年03月09日 09:21:04   作者:moonlightL  
這篇文章主要給大家介紹的是關于Lua語言新手入門的簡單教程,文中通過示例代碼一步步介紹的非常詳細,對各位新手們的入門提供了一個很方便的教程,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。

一、前言

Lua 是一種輕量小巧的腳本語言,用標準 C 語言編寫并以源代碼形式開放,其設計目的是為了嵌入應用程序中,從而為應用程序提供靈活的擴展和定制功能。

Lua 可以應用在游戲開發(fā)、獨立應用腳本、Web 應用腳本、擴展和數(shù)據(jù)庫插件、安全系統(tǒng)等場景。

筆者學習的目的主要是為了能在 Web 應用(Nginx、Redis)中使用到 Lua 腳本。

特點

  • Lua腳本可以很容易的被C/C++ 代碼調用,也可以反過來調用C/C++的函數(shù)。
  • Lua由標準C編寫而成,代碼簡潔優(yōu)美,幾乎在所有操作系統(tǒng)和平臺上都可以編譯,運行。
  • 以極小的體積和簡單的語法提供全面的功能。[一個完整的Lua解釋器不過200k,在目前所有腳本引擎中,Lua的速度是最快的]
  • 實現(xiàn)與宿主語言的簡潔接口
  • 成為一個很容易嵌入其它語言中使用的語言。

特性

  • 支持面向對象編程
  • 輕量級
  • 可擴展
  • 函數(shù)式編程
  • 自動內存管理
  • 通用類型的表–table,可實現(xiàn)數(shù)組,哈希表,集合,對象
  • 支持閉包
  • 支持多線程
  • 支持交互式編程

二、安裝

注意:請確保安裝 Lua 之前系統(tǒng)已安裝 readline 和 readline-devel。如果沒有則鍵入 yum install -y readline readline-devel 進行安裝。

curl -R -O http://www.lua.org/ftp/lua-5.3.4.tar.gz
tar zxf lua-5.3.4.tar.gz
cd lua-5.3.4
make linux test

測試,命令行中鍵入 lua -v:

Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio

顯示 Lua 版本說明安裝正確。

三、運行方式

與其他腳本語言一樣,我們需要將 Lua 代碼編寫在文件中,后綴名為 .lua。

運行該文件的代碼時,只需在命令行鍵入 lua xx.lua 即可。

四、語法

4.1 數(shù)據(jù)類型

Lua 中包含 8 種基本數(shù)據(jù)類型,即:nil、boolean、number、string、userdata、function、thread 和 table。

數(shù)據(jù)類型 說明
nil 表示無效值,在條件表達式中表示 false。
boolean 布爾值,包含 true 和 false 兩個值。
number 表示雙精度類型的實浮點數(shù)。
string 表示字符串,通過雙引號或單引號括住。
userdata 表示任意存儲在變量中的 C 數(shù)據(jù)結構
function 表示 C 或 Lua 編寫的函數(shù)
thread 表示執(zhí)行的獨立線程,用于執(zhí)行協(xié)同程序。
table 表示一個關聯(lián)數(shù)組,數(shù)組索引可以是數(shù)字或字符串。

例如:

a=10
str="hello world"

不需要聲明變量類型,我們可以通過 type() 判斷變量類型。

注意:

Lua 變量有三種類型:全局變量、局部變量和表中的域;

默認情況下,不管在哪聲明的變量都是全局變量。通過 local 修飾的變量為局部變量;

變量默認值為 nil。

4.2 運算符

1) 賦值運算符

str="hello".."world" -- 通過 .. 連接字符串
a,b=10,15 -- a=10,b=15
c,d,e=1,2 -- c=1,b=2,e=nil

2) 算術運算符

與其他程序設計語言類似。

a,b=10,15
c=a+b -- 加號
d=a-b -- 減號
e=a*b -- 乘號
f=a/b -- 除號
g=a%b -- 求余
h=a^2 -- 求乘方
i=-a -- 負號

3) 關系運算符

與其他程序設計語言類似。

a,b=10,15
print(a>b) -- 大于
print(a<b) -- 小于
print(a==b) -- 等于
print(a~=b) -- 不等于

4) 邏輯運算符

print(true and false) -- 與
print(true or false) -- 或
print(not true) -- 非

5) 其他運算符

操作符 說明
.. 連接兩個字符串
# 返回字符串或表的長度,如 #“l(fā)ua”

4.3 流程控制

1) 條件判斷,有 3 種寫法。

-- if 語句
if(true)
then
 print("hello")
end
-- if .. else 語句
a,b=10,15
if(a>b)
then
 print(a)
else
 print(b)
end
-- if 嵌套
c=20
if(c>10)
then
 if(c<30)
 then
 print(c)
 end
end

2) 循環(huán),有 4 種寫法。

類型 說明
while 循環(huán) 在條件為 true 時,讓程序重復執(zhí)行語句。
for 循環(huán) 重復執(zhí)行指定語句,重復次數(shù)在 for 中控制??梢员闅v數(shù)字和泛型。
repeat .. until 重復執(zhí)行循環(huán),直到指定條件為真為止。
循環(huán)嵌套 循環(huán)內嵌套多個循環(huán)語句。

例如:

-- while 循環(huán)
a=10
while(a>0)
do
 print(a)
 a=a-1
end
-- for 循環(huán),遍歷數(shù)字
for a=1,10,1 do
 print(a)
end
-- repeat .. until 循環(huán)
a=10
repeat
 print(a)
 a=a-1
until(a<1)

4.4 數(shù)組

Lua 數(shù)組大小不固定且下標從 1 開始。

arr={"h","e","l","l","o"}
-- 此處使用遍歷數(shù)字方式
for index=1,#arr do
 print(arr[index])
end
-- 此處使用遍歷泛型方式
for i,v in ipairs(arr) do
 print(i,v)
end

4.5 函數(shù)

-- 案例 1
function calc(a,b,c)
 return a+b+c
end
result=calc(1,2,3)
print(result)
-- 案例 2
function getCalc(a,b,c)
 return a,b,c
end
r1,r2,r3=getCalc(1,2,3)
print(r1,r2,r3)

Lua 中的函數(shù)允許返回多個值。

4.6 table

table 是 Lua 中的一個數(shù)據(jù)結構,類似于 Java 中的 Map 類型或 Javascript 中的 JSON 對象。

Lua table 使用關聯(lián)數(shù)組,我們可以使用任意類型值作為數(shù)組的索引,但不能是 nil。

Lua table 大小不固定。

person={}
person.name="jack"
person.age=20
print(person[1])
print(person.name)
print(person["age"])

4.7 模塊和包

模塊類似于一個封裝庫。從 Lua 5.1 開始,Lua 加入標準的模塊管理機制,可以將一些公用的代碼放在一個文件中,以 API 接口的形式在其他地方調用,有利于代碼的重用和降低代碼耦合。

Lua 的模塊由變量、函數(shù)等已知元素組成的 table 。

例如:

創(chuàng)建名為 module.lua 的文件。

module={}
module.index=1
function module.sum(a,b)
 return a+b
end

另一個文件引入:

-- 此處 module 是文件名
require "module"
-- 此處 module 是引入模塊中定義的名稱
print(module.index)
print(module.sum(1,2))

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關文章

  • Lua實現(xiàn)類繼承

    Lua實現(xiàn)類繼承

    這里給大家演示的是一個使用lua實現(xiàn)類繼承的示例,實現(xiàn)類繼承其實有很多種寫法,這里是本人常用的方法,推薦給大家。
    2015-03-03
  • lua中使用packagepath解決多個項目的路徑?jīng)_突問題

    lua中使用packagepath解決多個項目的路徑?jīng)_突問題

    這篇文章主要介紹了lua中使用packagepath解決多個項目的路徑?jīng)_突問題,本文描述了問題的產生環(huán)境和原因,并給出了解決方法,需要的朋友可以參考下
    2015-04-04
  • Lua教程(二十一):編寫C函數(shù)的技巧

    Lua教程(二十一):編寫C函數(shù)的技巧

    這篇文章主要介紹了Lua教程(二十一):編寫C函數(shù)的技巧,本文講解了數(shù)組操作、字符串操作、在C函數(shù)中保存狀態(tài)等內容,需要的朋友可以參考下
    2015-04-04
  • 淺談Lua語句

    淺談Lua語句

    Lua支持大多數(shù)傳統(tǒng)的語句,跟C語言和Pascal差不多。傳統(tǒng)的語句包括:賦值,控制結構,流程調用等。Lua還支持一些不太傳統(tǒng)的語句,例如多賦值(聽起來有點怪,往下看就明白了)和局部變量聲明(這個好像也是傳統(tǒng)的吧)。
    2015-05-05
  • Lua中三種循環(huán)語句的使用講解

    Lua中三種循環(huán)語句的使用講解

    今天小編就為大家分享一篇關于Lua中三種循環(huán)語句的使用講解,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Lua腳本語言入門筆記

    Lua腳本語言入門筆記

    這篇文章主要介紹了Lua腳本語言入門筆記,本文講解了什么是Lua、Lua里的注釋、Lua里的變量、Lua里的運算符、Lua里的數(shù)據(jù)類型、Lua里的代碼塊、Lua里的關系類型、Lua里的函數(shù)、Lua里的類等內容,需要的朋友可以參考下
    2014-12-12
  • Lua中的metatable詳解

    Lua中的metatable詳解

    這篇文章主要介紹了Lua中的metatable詳解,本文詳細講解了metatable的作用、定義操作符行為、為 Lua 函數(shù)庫提供支持等內容,需要的朋友可以參考下
    2014-10-10
  • Lua中的全局變量、非全局變量總結

    Lua中的全局變量、非全局變量總結

    這篇文章主要介紹了Lua中的全局變量、非全局變量總結,全局變量可稱之為Lua環(huán)境變量,需要的朋友可以參考下
    2014-09-09
  • Lua內置的調試器用法詳解

    Lua內置的調試器用法詳解

    這篇文章主要介紹了Lua內置的調試器用法,在編程debug操作中非常有用,要的朋友可以參考下
    2015-05-05
  • Lua教程(十七):C API簡介

    Lua教程(十七):C API簡介

    這篇文章主要介紹了Lua教程(十七):C API簡介,本文講解了基礎知識、棧、C API中的錯誤處理、Lua調用C程序、C程序調用Lua代碼的錯誤處理等內容,需要的朋友可以參考下
    2015-04-04

最新評論

龙胜| 淅川县| 宁城县| 乃东县| 吉木萨尔县| 延庆县| 蓝田县| 巧家县| 河南省| 邹城市| 秭归县| 郓城县| 阿拉善右旗| 长丰县| 平潭县| 清水河县| 承德县| 阿荣旗| 萨嘎县| 龙陵县| 聊城市| 保德县| 平武县| 永康市| 洛南县| 来凤县| 大港区| 安乡县| 大化| 濮阳市| 连山| 盈江县| 黎平县| 永安市| 剑河县| 望都县| 武宣县| 栾城县| 辽中县| 崇义县| 长沙市|