這一章我們介紹一下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和函式的筆記以及自己的理解,其中學習過程中的寫...