Chunks
Lua就和一般的Script一樣,沒有所謂的main function,也不需要分號";"'當成一個statement的結束,分號可有可無,不過我還是習慣性的加上去,就像數學運算式的括號,很可能你想的和你寫出來的意思不同,導致錯誤,以下的範例都是一樣的意思
a = 1
b = a*2
a = 1;
b = a*2;
a = 1 ; b = a*2
-- "--"是註解的意思
a = 1 b = a*2 -- 很醜,但還是合法
您可以在提示符號下執行lua,lua [ options ] [ script [ args ] ]
prompt> lua 會進入interactive 模式。
prompt> lua -la -lb會執行a.lua和b.lua,-l相當於require的意思,lua就像一般的computer language一樣,允許您寫自己的library,並且透過require載入。
lua也提供另外dofile這個function,讓您測試您寫的lua檔,dofile和require最大的不同是,require只會載入一次,而dofile可以重覆載入,所以拿來驗證lua檔就非常適合了。
Global Variables
在Lua中,沒有特別宣告local就是Global Variables,用到沒有宣告的變數,其值就是nil。
function scope1() -- step 4.
function scope2() -- step. 8
print(A) -- step. 9 印出A=20
local A=30 -- step. 10又宣告一個變數A(範圍更小)
print(A) -- step. 11 印出該範圍的A, 即30
end
print(A) -- step 5. 印出 10
local A=20 -- step 6. 新的A=20, Global的A一樣不變
scope2() -- step 7.
print(A) -- step 12. 印出這個範圍的A = 20
end
print(A) -- step 1. 印出 nil
A=10 -- step 2. A=10
scope1() -- step 3.
print(A) -- step 13. 印出這個範圍的A = 10
os.exit()
Some Lexical Conventions
和一般的language一樣,會有所謂的key word,以下是lua的key word| and | break | do | else | elseif |
| end | false | for | function | if |
| in | local | nil | not | or |
| repeat | return | then | true | until |
lua是case-sensitive就是有分大小寫的。 變數x和變數X是不同的。
在Lua中的註解 --是單行,像C中的//,而--[[ --]]就像C的/* */屬於多行註解。好用的地方是,只要在"--[["前面多一個"-"就等於取消整個註解,超好用。
--[[
print(10) -- no action (comment)
--]]
---[[
print(10) --> 10
--]]
The Stand-Alone Interpreter
lua會將command-line的參數存到陣列arg中,arg[0]存放執行的script,arg[-1]存放script檔名的前一個參數,arg[1]..arg[n]就是依序存放後面的參數。參考資料:Programming in Lua (first edition)




沒有留言:
張貼留言