Lua 學習筆記(二)

2021-07-05 08:56:39 字數 1766 閱讀 8276

這一章我們介紹一下lua中函式的宣告,其實函式這東西我們每個人都接觸過,就像我們初中高中學的一次函式 ,二次函式是一樣的。舉個簡單的例子吧,目前歐元匯率和人民幣匯率的比例是1歐元換7.2人民幣,那我們手裡有100歐元能換多少人民幣呢?如果是1000歐元呢?遇到這種問題的時候,我們就需要找到乙個規律,然後把他寫成乙個函式,輸入是歐元,輸出是人民幣就好了,這個過程其實就是數學建模的過程。於是我們可以很輕鬆的想到 y = 7.2x 這個函式。 x就代表的是輸入(人民幣), y代表的是輸出的結果(歐元)。我們把這個函式用lua表示出來如下:

y = function

(x)return

7.2*x

end

在這個函式中 x 被稱為引數,7.2*x被稱為返回值,當然乙個函式可以沒有引數,也可以沒有返回值, 我們可以試試 y(10),結果是72.0。也就是說10歐元就是72塊rmb。雖然這個程式是對的,但是對於程式設計師來說y,x緊緊是乙個符號沒有實際意義,別人看到了也不會明白這個函式是什麼意思。所以要養成好的習慣,寫好注釋,變數名,函式名也要有一定意義,為日後維護自己的程式省去很多麻煩。

--this is a function

for money exchange between rob and euro

rmb2euro = function(rmb)

return rmb*7.2

end

這樣寫一目了然這個函式是幹什麼用的。

二.控制結構

if條件語句

--簡單if條件語句

if (布林表示式) then

--todo

end--複雜if條件語句

if (布林表示式) then

--todo

elseif (布林表示式) then

--todo

elseif (布林表示式) then

--todo

else

--todo

end

例:

--deepfreeze是乙個布林變數

--這個函式判讀法師深結是不是在冷卻中

function

isdeepfreezecd(deepfreeze)

if(deepfreeze) then

return

true

end return

false

end

2.while語句

while語句在迴圈重複進行一些工作時候用到的,具體語法如下:

--當布林表示式值為false的時候 迴圈結束

while (布林表示式)do

--todo

end

在lua中 do/while語句用 repeat/until語句代替
repeat

--todo

until(布林表示式)

while語句和repeat/until的區別就是後者會執行最少一次迴圈,而while有可能不執行迴圈直接跳出。

for迴圈

for i = startvalue,endvalue,stepvalue do

--todo

end

for i = 0 ,10,1

doprint(i)

end

結果會輸出從1~10。

Lua學習筆記(二) 函式

1 可以在字串前放置操作符 來獲得該字串的長度 for i 1,arr do print arr i end注 上面的程式中 arr的意思就是arr的長度。注 lua 中的變數,如果沒有 local 關鍵字,全都是全域性變數,lua也是用 table 來管理全域性變數的,lua把這些全域性變數放在了...

Lua 學習筆記(二) 語句

lua 中的語句支援賦值,控制結構,函式呼叫,還有變數宣告。不允許空的語句段,因此 是非法的。chunck 應該是表示語句組後面 是可選項。block chunck stat do block end可以將乙個語句塊顯式地寫成語句組,可以用於控制區域性變數的作用範圍。lua 支援多重賦值。多重賦值時...

Lua學習筆記二之C中呼叫Lua

雖然之前看過 lua程式設計 第二版 這本書,但對c與lua互動的部分,一直不是很理解。最近想系統學習和深入理解c與lua的互動 實質是想通過這個,進一步閱讀lua原始碼,因此又看了一下這本書的第4部分,下面是在學習c中呼叫lua的全域性變數 table和函式的筆記以及自己的理解,其中學習過程中的寫...