成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > Lua極簡入門指南(一):基礎(chǔ)知識篇

Lua極簡入門指南(一):基礎(chǔ)知識篇

熱門標(biāo)簽:如何利用高德地圖標(biāo)注家 開通400電話申請流程 揚州電銷外呼系統(tǒng)軟件 400手機(jī)電話免費辦理 電腦外呼系統(tǒng)輻射大嗎 上海企業(yè)外呼系統(tǒng)排名 百度地圖標(biāo)注位置網(wǎng)站 智能語音電銷的機(jī)器人 武漢百應(yīng)人工智能電銷機(jī)器人

本文是《Programming in Lua 3rd》讀書筆記。

Chunks

一個 Chunk 就是一組被執(zhí)行的語句,例如一個文件或者交互模式下的一行。

標(biāo)識符(identifiers)

我們應(yīng)該避免使用以 _ 開頭并跟上一個或者多個大寫字母的字符串來作標(biāo)識符,它們被保留作特殊的用途(例如:_VERSION)。

注釋

單行注釋使用

復(fù)制代碼 代碼如下:

--

多行注釋使用
復(fù)制代碼 代碼如下:

--[[ 和 --]]

類型簡介

Lua 存在的數(shù)據(jù)類型包括:

1.nil。此類型只有一個值 nil。用于表示“空”值。全局變量默認(rèn)為 nil,刪除一個已經(jīng)賦值的全局變量只需要將其賦值為 nil(對比 JavaScript,賦值 null 并不能完全刪除對象的屬性,屬性還存在,值為 null)

2.boolean。此類型有兩個值 true 和 false。在 Lua 中,false 和 nil 都表示條件假,其他值都表示條件真(區(qū)別于 C/C++ 等語言的是,0 是真)

3.number。雙精浮點數(shù)(IEEE 754 標(biāo)準(zhǔn)),Lua 沒有整數(shù)類型

4.string。你可以保存任意的二進(jìn)制數(shù)據(jù)到字符串中(包括 0)。字符串中的字符是不可以改變的(需要改變時,你只能創(chuàng)建一個新的字符串)。獲取字符串的長度,可以使用 # 操作符(長度操作符)。例如:print(#”hello”)。字符串可以使用單引號,也可以使用雙引號包裹,對于多行的字符串還可以使用 [[ 和 ]] 包裹。字符串中可以使用轉(zhuǎn)義字符,例如 \n \r 等。使用 [[ 和 ]] 包裹的字符串中的轉(zhuǎn)義字符不會被轉(zhuǎn)義

5.userdata。用于保存任意的 C 數(shù)據(jù)。userdata 只能支持賦值操作和比較測試

6.function。函數(shù)是第一類值(first-class value),我們能夠像使用其他變量一樣的使用函數(shù)(函數(shù)能夠保存在變量中,可以作為參數(shù)傳遞給函數(shù))

7.thread。區(qū)別于我們常常說的系統(tǒng)級線程

8.table。被實現(xiàn)為關(guān)聯(lián)數(shù)組(associative arrays),可以通過任何值來進(jìn)行索引(nil 除外)。和全局變量一樣,table 中未賦值的域為 nil,刪除一個域只需要將其賦值為 nil(實際上,全局變量就是被放置在一個 table 中)

type 函數(shù)用于返回值的類型:

復(fù)制代碼 代碼如下:

print(type("Hello World")) --> string
print(type(10.4*3))        --> number
print(type(print))         --> function
print(type(type(X)))       --> string

在 Lua 中,任何的變量都可以保存任何的值。

table 使用簡介

使用構(gòu)造表達(dá)式可以創(chuàng)建一個 table:

復(fù)制代碼 代碼如下:

-- 創(chuàng)建一個空的 table
a = {}
 
-- 創(chuàng)建并初始化一個 table,這里
-- days[1] == "Sunday"
-- days[2] == "Monday"
-- ...
days = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }
 
-- 創(chuàng)建并初始化一個 table,這里
-- a["x"] == 10
-- a["y"] == 20
a = { x = 10, y = 20 }

使用 [] 操作符訪問 table 的域:

復(fù)制代碼 代碼如下:

a = {}
k = "x"
a[k] = 10
a["x"] = 20
print(a["y"]) --> nil
a.x = 30

注意,a.name 的語法等價于 a["name"]。

table 可以用于表示數(shù)組,這時候索引為整數(shù),并且從 1(而非 0)開始,例如:

復(fù)制代碼 代碼如下:

a = { 'a', 'b' }
a[1] == 'a'
a[2] == 'b'

長度操作符可以獲取 table 數(shù)組部分的長度:

復(fù)制代碼 代碼如下:

a = {}
a[1] = 1
a[2] = 2
print(#a) --> 2
 
a.a = 1
a.b = 2
print(#a) --> 2
 
a = {}
a.a = 1
a.b = 2
print(#a) --> 0

表達(dá)式

算術(shù)操作符

1.+(加)
2.-(減)
3.*(乘)
4./(除)
5.^(冪)
6.%(取模)

任何算術(shù)操作符都試圖將操作數(shù)轉(zhuǎn)換為數(shù)值類型,例如:

復(fù)制代碼 代碼如下:

print(10 + '1') --> 11

關(guān)系操作符

1.(小于)
2.>(大于)
3.=(小于等于)
4.>=(大于等于)
5.==(等于)
6.~=(不等于)

兩個不同類型的值是不相等的,例如:

復(fù)制代碼 代碼如下:

nil ~= false

table、userdata 類型是通過引用進(jìn)行比較的,例如:

復(fù)制代碼 代碼如下:

a = {}; a.x = 1; a.y = 0
b = {}; b.x = 1; b.y = 0
c = a

這里 a 和 c 引用一個相同的對象,因此 a == c,但是 a ~= b(即便 a、b 內(nèi)容相同)。

邏輯操作符

1.and
2.or
3.not

邏輯操作符有返回值。對于 and 操作來說,如果第一個操作數(shù)為 false 時返回此操作數(shù),否則返回第二個操作數(shù)。對于 or 操作來說,如果第一個操作數(shù)不為 false 時返回此操作數(shù),否則返回第二個操作數(shù)。

連接操作符

字符串連接可以使用連接操作符 “..”,例如:

復(fù)制代碼 代碼如下:

print("Hello " .. "World")

連接操作符試圖將操作數(shù)轉(zhuǎn)化為字符串,例如:
復(fù)制代碼 代碼如下:

print("number: " .. 1)

語句

多賦值(multiple assignment)支持,例如:

復(fù)制代碼 代碼如下:

a, b = 1, 2
print(a) --> 1
print(b) --> 2

多賦值的一個慣用法就是交換兩個變量的值:
復(fù)制代碼 代碼如下:

x, y = 1, 2
x, y = y, x
print(x) --> 2
print(y) --> 1

創(chuàng)建局部變量使用 local:
復(fù)制代碼 代碼如下:

j = 10       -- 全局變量 j
local i = 10 -- 局部變量 i

局部變量的作用域限制于他們聲明的塊(block)。塊(block)包括:

1.控制結(jié)構(gòu)的主體部分
2.函數(shù)體
3.chunk
4.do-end

范例:

復(fù)制代碼 代碼如下:

if true then
    local x = 20
    print(x) --> 20
end
 
print(x) --> nil

我們可以使用 do-end 關(guān)鍵字來構(gòu)造一個塊:
復(fù)制代碼 代碼如下:

do
    local x = 20
    print(x) --> 20
end
 
print(x) --> nil

訪問局部變量要快于訪問全局變量。在 Lua 中有一個習(xí)慣用法:
復(fù)制代碼 代碼如下:

local foo = foo

用于創(chuàng)建一個局部變量并初始化為同名的全局變量。這樣做常常出于兩個原因:

1.避免某些類型的全局變量被修改
2.提高訪問速度

控制結(jié)構(gòu)

if then elseif else

復(fù)制代碼 代碼如下:

if a 0 then
    a = 0
end
 
if a b then
    return a
else
    return b
end
 
if op == '+' then
    r = a + b
elseif op == '-' then
    r = a - b
elseif op == '*' then
    r = a * b
elseif op == '/' then
    r = a / b
else
    error('invalid operation')
end

Lua 中沒有 switch 語句。

while

復(fù)制代碼 代碼如下:

local i = 1
while a[i] do
    print(a[i])
    i = i + 1
end

repeat

復(fù)制代碼 代碼如下:

repeat
    line = io.read()
until line ~= ''
print(line)

區(qū)別于 while,repeat 會先執(zhí)行循環(huán)體,然后判斷測試條件。

數(shù)值型 for(numeric for)

for 有兩種:

數(shù)值型 for(numeric for)

1.泛型 for(generic for)
2.數(shù)值型 for 的語法如下:

復(fù)制代碼 代碼如下:

for var = exp1, exp2, exp3 do
    something>
end

這里 exp1 作為 var 的初始值,exp2 為 var 的最大值,exp3 為 var 每次遞增的值,exp3 是可選的,默認(rèn)為 1。范例:
復(fù)制代碼 代碼如下:

-- 輸出 1 2 3
for i = 1, 3 do
    print(i)
end

有一些需要注意的地方:

1.for 中的 exp1、exp2、exp3 只會被計算一次值,例如:

復(fù)制代碼 代碼如下:

for i = 1, f(x) do print(i) end

這里的 f(x) 只會被調(diào)用一次

2.控制變量 var 只是一個局部變量
3.不要嘗試去修改控制變量 var 的值(結(jié)果是未知的)

泛型 for

泛型 for 通過一個迭代器函數(shù)來實現(xiàn)遍歷,例如:

復(fù)制代碼 代碼如下:

for k, v in pairs(t) do
    print(k, v)
end

這里的 pairs 就是一個迭代器函數(shù),此 for 循環(huán)遍歷 table t,每次獲取到的 key 保存在變量 k 中,獲取到的 value 保存在變量 v 中。除了 pairs 還有其他的迭代器可以用:

1.io.lines 可用于迭代文件中的行
2.ipairs 可用于迭代 table 的數(shù)組部分

我們還可以自己編寫迭代器。

break、return、goto

break 語句用于跳出一個循環(huán)(for、repeat、while)。

return 語句用于為函數(shù)返回結(jié)果。在 Lua 中,return 語句必須是一個塊的最后一條語句,看一個例子:

復(fù)制代碼 代碼如下:

function foo()
    -- 語法錯誤
    return
    local i = 1
end

有時候,我們出于某些原因(例如為了 debug),我們需要在一個函數(shù)中插入一個 return 語句,這時候可以這么做:

復(fù)制代碼 代碼如下:

function foo()
    -- ...
    do return end
    -- ...
end

goto 語句用于在函數(shù)中跳轉(zhuǎn)。goto 語句可以讓執(zhí)行跳轉(zhuǎn)到特定的標(biāo)簽(label)處,例如:

復(fù)制代碼 代碼如下:

goto quit
print('come on')
::quit::
print('quit')

這里輸出 quit。正如我們看到的,標(biāo)簽的寫法為 ::name::。goto 跳轉(zhuǎn)也是存在限制的:

1.不允許跳轉(zhuǎn)到一個塊中去
2.不允許跳轉(zhuǎn)到函數(shù)之外去
3.不允許跳入局部變量的作用域中

對于第三點,看一個例子:

復(fù)制代碼 代碼如下:

goto quit
local a
::quit::
print('quit')

這里,會出現(xiàn)語法錯誤(jumps into the scope of local 'a')。但是,有一個細(xì)節(jié)需要注意,我們先修改上面的例子:

復(fù)制代碼 代碼如下:

goto quit
local a
::quit::

執(zhí)行成功,沒有語法錯誤。這是因為局部變量的作用域結(jié)束于變量定義的塊的最后一個非 void 語句,而標(biāo)簽被認(rèn)為是一個 void 語句,對于上面的例子來說,a 的作用域在 ::quit:: 之前就結(jié)束了,因此 goto quit 并沒有跳入局部變量 a 的作用域中。

利用 goto 可以比較方便的編寫狀態(tài)機(jī),例如(s1、s2 為狀態(tài)):

復(fù)制代碼 代碼如下:

::s1:: do
    local c = io.read(1)
    if c == '0' then goto s2
    elseif c == nil then print'ok'; return
    else goto s1
    end
end
 
::s2:: do
    local c = io.read(1)
    if c == '0' then goto s1
    elseif c == nil then print'not ok'; return
    else goto s2
    end
end
 
goto s1

您可能感興趣的文章:
  • Lua腳本語言簡明入門教程
  • Lua極簡入門指南(三): loadfile和錯誤處理
  • Lua極簡入門指南(一):函數(shù)篇
  • Lua極簡入門指南:全局變量
  • lua腳本語言快速入門教程
  • Lua入門學(xué)習(xí)筆記
  • Lua極簡入門指南(六):模塊
  • Lua 極簡入門指南(七):面向?qū)ο缶幊?/li>
  • Lua腳本語言基本語法快速入門教程
  • Lua語言新手簡單入門教程

標(biāo)簽:延邊 新余 嘉峪關(guān) 宜賓 武漢 黑龍江 張掖 江西

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Lua極簡入門指南(一):基礎(chǔ)知識篇》,本文關(guān)鍵詞  Lua,極簡,入門,指南,一,基礎(chǔ)知識,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Lua極簡入門指南(一):基礎(chǔ)知識篇》相關(guān)的同類信息!
  • 本頁收集關(guān)于Lua極簡入門指南(一):基礎(chǔ)知識篇的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    秋霞在线视频| 中文字幕精品久久久久| 91丝袜一区二区三区| 亚洲视频免费一区| 美女亚洲精品| 国产人成一区二区三区影院| 狂野欧美激情性xxxx| 草草草视频在线观看| 女人一区二区三区| 亚洲自拍av在线| 亚洲黄色片网站| 亚洲精品中文字幕乱码三区| 国产强被迫伦姧在线观看无码| 5月婷婷6月丁香| 亚洲精品孕妇| 你懂的视频一区二区| 天天综合久久| 色婷婷av久久久久久久| 精品夜夜嗨av一区二区三区| 欧美激情性做爰免费视频| 欧美日韩伦理一区二区| 妺妺窝人体色WWW精品| 欧美丝袜丝交足nylons图片| 国产精品成人一区二区网站软件| 久久久极品av| 欧美人与禽猛交乱配| 欧美成人国产一区二区| 在线观看福利一区| 欧美一区二区视频在线观看| 成年黄网站在线观看免费| 国内精品免费视频精选在线观看| 亚洲欧美中文日韩在线v日本| 亚洲一区日韩| 精品日韩久久久| 91精品国产沙发| 免费av在线播放| 亚洲精品免费在线观看视频| 日韩女优毛片在线| 欧美一级在线免费观看| 亚洲国产精品欧美久久| 尤蜜粉嫩av国产一区二区三区| 国内自拍欧美激情| 欧美大片日本大片免费观看| 午夜免费视频网站| 国产永久免费| 又大又黄又粗| 97视频免费在线看| 日本一本草久p| 91国偷自产一区二区使用方法| 国产黄网在线观看| 在线精品视频一区| 男人本色网站| 国产精品理论在线观看| 丰满熟女人妻一区二区三区| 在线播放黄网| 日本成人在线免费| 欧美日韩国产第一页| 国产精品第七十二页| 青青草福利视频| 欧美人与动牲性行为| 五月婷婷之综合激情| 国产一区二区三区不卡免费观看| 91中文字幕在线观看| 亚洲免费影视| 性色视频在线观看| 精品国产二区在线| 色噜噜狠狠成人中文综合| 日本一区二区三区四区五区| 国产成人精选| 亚洲伦片免费看| 国产亚洲成av人在线观看导航| 日本少妇一区| 亚洲欧洲性图库| 666av成人影院在线观看| 亚洲免费大片在线观看| 精品国产一区二区三区成人影院| 少妇在线看www| www.91在线| 成人av网站在线观看| 亚洲激情欧美色图| 成人国产精品入口免费视频| 国产日韩在线不卡| 97se在线视频| 国产一区日韩二区欧美三区| 亚洲av成人无码久久精品老人| 国产精品99久久久久久久久久久久| 国产又色又爽又黄的| 亚洲系列第一页| 亚洲成a人片77777老司机| 欧美日韩在线一二三| 风间由美一区二区三区在线观看| 国产一级免费观看| 欧美日韩亚洲综合在线| 亚洲婷婷在线| 综合国产精品| 国产一区二区三区四区福利| 懂色av中文一区二区三区| 日本精品免费在线观看| 手机免费看av片| 国产精品欧美久久久久一区二区| 日韩资源在线观看| 在线观看日韩| 天堂久久一区| 不卡一区综合视频| 免费短视频成人日韩| 日本熟妇色xxxxx日本免费看| 综合国产在线视频| 精品国产区一区二区三区在线观看| 久久久精品久久久久特色影视| 亚洲一区3d动漫同人无遮挡| 一本久久精品| 中文字幕av日韩精品| 久久99久久99精品免视看婷婷| 狠狠色2019综合网| 一本—道久久a久久精品蜜桃| 久色成人在线| heyzo在线观看| 成年美女网站| 日韩av在线网址| 老少交欧美另类| 激情亚洲网站| 亚洲精品国产精品乱码不卡| 在线观看av一区| 日日摸日日碰夜夜爽无码| 97超碰在线人人| 91国内精品野花午夜精品| 99精品女人在线观看免费视频| 一级片在线免费播放| 人操人视频在线观看| 欧美三区视频| 蜜乳av一区| 又紧又大又爽精品一区二区| 午夜精品久久久久久久爽| 欧美性受xxx黑人xyx性爽| 99精品视频在线观看免费| 日韩av网站导航| 日韩精品免费在线播放| 国产福利视频一区二区| 国产精品免费电影| 欧美xxx.com| 欧美曰成人黄网| 性xx色xx综合久久久xx| 美女毛片免费看| 成人午夜视频一区二区播放| 精品亚洲精品| 日本网站在线免费观看| 亚洲人成午夜免电影费观看| 在线视频中文字幕| 一级片在线免费播放| 公肉吊粗大爽色翁浪妇视频| 可骚可骚的黄视频网站| 欧洲成人一区二区三区| 亚洲人成网亚洲欧洲无码| 久久久久国色av免费看影院| 99久久久久国产精品免费| 精品国产一区二区三区2021| 欧美性猛交xxxxx少妇| 成人一区二区免费视频| 欧美一区二区三区公司| 成人免费视频app| 欧美美女一区二区三区| 国产黄色片大全| 亚洲三级电影| 亚洲精品在线免费观看视频| 99久久久精品| 欧美mv日韩mv| 日韩成人免费av| 国产日韩三区| 国产婷婷成人久久av免费高清| 91精品久久久久久综合乱菊| 欧美日韩国产页| 欧美亚洲一二三区| 久久久久久com| 亚洲最大黄色| baoyu777.永久免费视频| 欧美资源一区| 免费黄色电影在线观看| 中文字幕第四页| 97视频在线| 日夜干在线视频| 1024成人网色www| 欧洲美女免费图片一区| 久久精品五月| 性欧美疯狂xxxxbbbb| 可以看av的网站久久看| 欧美日韩亚洲成人| 国产欧美综合一区二区三区| 少妇网站在线观看| 国产一区激情| 国产亚洲精品久久久久久移动网络| 欧美一区国产一区| 国产精品一卡二| 精品国产乱码久久久久久蜜坠欲下| 欧美肥婆姓交大片| 国内精品免费一区二区三区| 69xxx免费| 国产精品毛片一区二区在线看| 久久国产精品色av免费看| 国产中文字幕视频在线观看| 欧美国产亚洲另类动漫| 一级黄色特级片| 成人资源www网在线最新版| 国语自产在线不卡| 国产高清精品一区二区三区| 国产尤物av一区二区三区| 少妇高潮一区二区三区99小说| 欧美老熟妇一区二区三区| 国产中文一区| 日韩欧美一级| 国产高清免费在线观看| 中文字幕在线观看1| 亚洲 日本 欧美 中文幕| 国产亚洲精品久久久久婷婷瑜伽| 国产偷窥洗澡视频| 国产原创在线| 五月婷婷欧美视频| 日韩欧美在线不卡| 一级特黄曰皮片视频| 欧美自拍偷拍一区二区| 婷婷久久伊人| 天堂а√在线中文在线鲁大师| 亚洲妇熟xxxx妇色黄| 日韩午夜在线电影| eeuss影院网站免费观看| 色噜噜狠狠成人中文综合| 一区二区日韩欧美| 精品无人区无码乱码毛片国产| 亚洲一区免费在线观看| 天涯成人国产亚洲精品一区av| 亚洲第一页自拍| 久久香蕉综合色一综合色88| 日韩在线播放一区二区| 粗暴蹂躏中文一区二区三区| 色综合天天综合色综合av| 亚洲欧美日韩天堂| 国产精品99一区二区三| 日本一本在线观看| 色综合咪咪久久| 亚洲精选在线| 色综合久久久久综合体桃花网| 91精品久久久久久| 欧美激情性xxxxx| 亚洲免费一在线| 中文在线а√天堂官网| 天天亚洲美女在线视频| 在线免费三级电影网站| 欧美一区亚洲二区| 色综合天天爱| 99国精产品一二二线| 国产精品久久久久久久av大片| 欧美日韩在线观看视频小说| 亚洲在线第一页| 国产网红在线观看| 亚洲爱爱爱爱爱| www.成年人视频| 夜夜骚av一区二区三区| 国内少妇毛片视频| www.玖玖玖| 亚洲码在线观看| 国产麻豆剧果冻传媒观看hd高清| 色阁综合伊人av| 欧美gayvideo| 午夜91在线| 国产资源在线播放| 日本伦理一区二区三区| caoporn国产精品免费公开| 北条麻妃在线一区二区| 中文字幕在线观看网站| 日韩人妻无码一区二区三区99| 中文字幕 自拍| 5858p先锋影音资源网| 成人黄色免费网站在线观看| 717成人午夜免费福利电影| 欧美一卡二卡在线观看| 一级片免费在线| 久久精品网站免费观看| 丰满少妇被猛烈进入一区二区| 亚洲欧美日韩国产一区| 欧美一区二区三区四区在线观看| 欧美专区在线观看| 影音先锋国产在线| 啊v在线视频| www.伊人久久| 我的公把我弄高潮了视频| 久久久婷婷一区二区三区不卡| 日韩高清dvd碟片| 黄页视频在线91| 高清一区二区三区视频| 免费国产精品视频| 亚洲kkk444kkk在线观看| 青青草国产成人a∨下载安卓| 日韩欧美视频在线免费观看| 91免费精品视频| 日韩中文字幕免费观看| 亚洲999一在线观看www| 成人做爰66片免费看网站| 无码一区二区三区在线观看| 日韩中文字幕在线免费观看| 午夜伦理在线视频| 疯狂蹂躏欧美一区二区精品| 国产成人无码精品久久久性色| 午夜裸体女人视频网站在线观看| 91成人精品视频| 天堂精品视频| 欧美亚洲三区| 亚洲美女色禁图| 91成人超碰| 三级在线看中文字幕完整版| 黄漫在线播放| 自拍偷自拍亚洲精品被多人伦好爽| 91禁男男在线观看| 免费观看成人毛片| 亚洲第一国产精品| 国产毛片一区| 久久香蕉国产线看观看99| 亚洲午夜久久久久久久| 国内精品视频666| 自拍视频在线看| 日日噜噜噜夜夜爽爽狠狠视频| 欧美成人三级在线视频| 欧美精品久久久久久久小说| 亚洲成人精品视频| 日本a级片免费| 国产91一区二区三区| 白浆视频在线观看| 99re66热这里只有精品3直播| 国产精品99久久久久久似苏梦涵| 国产精品不卡一区二区三区|