# Lua 環境安裝
## Linux 系統上安裝
Linux & Mac上安裝 Lua 安裝非常簡單,只需要下載源碼包并在終端解壓編譯即可,本文使用了5.3.0版本進行安裝:
```
curl -R -O http://www.lua.org/ftp/lua-5.3.0.tar.gz tar zxf lua-5.3.0.tar.gz
cd lua-5.3.0 make linux test
make install
```
## Mac OS X 系統上安裝
```
curl -R -O http://www.lua.org/ftp/lua-5.3.0.tar.gz tar zxf lua-5.3.0.tar.gz
cd lua-5.3.0 make macosx test
make install
```
接下來我們創建一個 helloWorld.lua:
```
print("Hello World!")
```
執行以下命令:
```
$ lua helloWorld
```
輸出結果為:
```
Hello World!
```
## Window 系統上安裝 Lua
window下你可以使用一個叫"SciTE"的IDE環境來執行lua程序,下載地址為:
* 本站下載地址:[http://pan.baidu.com/s/1pJHqF8Z](http://pan.baidu.com/s/1pJHqF8Z)
* Github 下載地址:[https://github.com/rjpcomputing/luaforwindows/releases](https://github.com/rjpcomputing/luaforwindows/releases)
* Google Code下載地址 : [https://code.google.com/p/luaforwindows/downloads/list](https://code.google.com/p/luaforwindows/downloads/list)
雙擊安裝后即可在該環境下編寫 Lua 程序并運行。
你也可以使用 Lua 官方推薦的方法使用 LuaDist:[http://luadist.org/](http://luadist.org/) <split>123</split>
# Lua 基本語法
Lua 學習起來非常簡單,我們可以創建第一個 Lua 程序!
## 第一個 Lua 程序
### 交互式編程
Lua 提供了交互式編程模式。我們可以在命令行中輸入程序并立即查看效果。
Lua 交互式編程模式可以通過命令 lua -i 或 lua 來啟用:
```
$ lua -i
$ Lua 5.3.0 Copyright (C) 1994-2015 Lua.org, PUC-Rio
>
```
在命令行中,輸入以下命令:
```
> print("Hello World!")
```
接著我們按下回車鍵,輸出結果如下:
```
> print("Hello World!")
Hello World!
>
```
## 腳本式編程
我們可以將 Lua 程序代碼保持到一個以 lua 結尾的文件,并執行,該模式稱為腳本式編程,如我們將如下代碼存儲在名為 hello.lua 的腳本文件中:
```
print("Hello World!")
print("www.w3cschool.cc")
```
使用 lua 名執行以上腳本,輸出結果為:
```
$ lua test.lua
Hello World!
www.w3cschool.cc
```
我們也可以將代碼修改為如下形式來執行腳本(在開頭添加:#!/usr/local/bin/lua):
```
#!/usr/local/bin/lua
print("Hello World!")
print("www.w3cschool.cc")
```
以上代碼中,我們指定了 Lua 的解釋器 /usr/local/bin directory。加上 # 號標記解釋器會忽略它。接下來我們為腳本添加可執行權限,并執行:
```
./test.lua
Hello World!
www.w3cschool.cc
```
## 注釋
### 單行注釋
兩個減號是單行注釋:
```
--
```
### 多行注釋
```
--[[
多行注釋
多行注釋
--]]
```
## 標示符
Lua 表示符用于定義一個變量,函數獲取其他用戶定義的項。標示符以一個字母 A 到 Z 或 a 到 z 或下劃線 _ 開頭后加上0個或多個字母,下劃線,數字(0到9)。
最好不要使用下劃線加大寫字母的標示符,因為Lua的保留字也是這樣的。
Lua 不允許使用特殊字符如 @, $, 和 % 來定義標示符。 Lua 是一個區分大小寫的編程語言。因此在 Lua 中 W3c 與 w3c 是兩個不同的標示符。以下列出了一些正確的標示符:
```
mohd zara abc move_name a_123
myname50 _temp j a23b9 retVal
```
## 關鍵詞
以下列出了 Lua 的保留關鍵字。保留關鍵字不能作為常量或變量或其他用戶自定義標示符:
| and | break | do | else |
|:--- |:--- |:--- |:--- |
| elseif | end | false | for |
| function | if | in | local |
| nil | not | or | repeat |
| return | then | true | until |
| while |
一般約定,以下劃線開頭連接一串大寫字母的名字(比如 _VERSION)被保留用于 Lua 內部全局變量。
## 全局變量
在默認情況下,變量總是認為是全局的。
全局變量不需要聲明,給一個變量賦值后即創建了這個全局變量,訪問一個沒有初始化的全局變量也不會出錯,只不過得到的結果是:nil。
```
> print(b)
nil
> b=10
> print(b)
10
>
```
如果你想刪除一個全局變量,只需要將變量負值為nil。
```
b = nil
print(b) --> nil
```
這樣變量b就好像從沒被使用過一樣。換句話說, 當且僅當一個變量不等于nil時,這個變量即存在。
- Lua 簡介
- Lua 環境安裝
- Lua 數據類型
- Lua 變量
- Lua 循環
- Lua while 循環
- Lua for 循環
- Lua repeat...until 循環
- Lua 循環嵌套
- Lua break 語句
- Lua 流程控制
- Lua if 語句
- Lua if...else 語句
- Lua if 嵌套語句
- Lua 函數
- Lua 運算符
- Lua 字符串
- Lua 數組
- Lua 迭代器
- Lua table(表)
- Lua 模塊與包
- Lua 元表(Metatable)
- Lua 協同程序(coroutine)
- Lua 文件 I/O
- Lua 錯誤處理
- Lua 調試(Debug)
- Lua 垃圾回收
- Lua 面向對象
- Lua 數據庫訪問