Ubuntu安裝lua並基本使用
阿新 • • 發佈:2019-01-07
最近因為要深入應用premake,所以得學點lua.
Ubuntu13.04下安裝命令:
apt-get install lua5.2 lua5.2-doc
版本是5.2.1, 不算最新,不過也很新了。官方參考在這裡:http://www.lua.org/manual/5.2/
這是動態語言,變數無需宣告其型別,變數的值就自帶了型別。一共有以下8種類型:
nil, boolean, number, string, function, userdata, thread, and table
number是浮點數。
string是不可變型別,有點像Java。
userdata就是儲存C的struct. full userdata是記憶體有lua分配的userdata, 如果是記憶體有宿主語言(host)分配的,叫做light userdata.
thread這裡不是作業系統的執行緒,而是lua的一個協同程式(coroutines), 甚至可以在不支援執行緒的平臺上模擬出執行緒的特性。
table 一個關係陣列,可以用除nil之外的任何型別做索引(key), 包含了key和value, 可以用來表示陣列,符號表,集合,記錄,圖和樹等。真複雜,希望我不要用到。:)
table, function, thread和 full userdata 被使用時都是當作物件,變數只是引用它們的地址,並不拷貝它們。引數傳遞,函式的返回值和複製都是如此,不會深拷貝。
在lua官方站點找不到一個上手的例子,沒有helloworld。要的話就去買書?我不想成為專家,只是想完成我的premake構建而已。書就不必了。Google一下,找到一篇文章:
現在開始。用emacs建立hello1.lua檔案。
#!/usr/bin/lua
-- hello world lua program
print ("Hello World!")
然後執行命令:
codes/study/lua$ lua hello1.lua
Hello World!
成功了,現在學到一個lua函式print。稍微改動一下,把字面常量換成變數,也work.
#!/usr/bin/lua
-- hello world lua program
str = "Hello World!"
print (str)
現在試一下if語句和字串比較
#!/usr/bin/lua -- hello world lua program str = "Hello World!" print (str) if str == "Hello World!" then print "ok" end