Mac:
1.安装Lua编译器
- 下载Lua, http://www.lua.org/;
- 解压后,cd进入该文件夹src目录下,修改Makefile里macosx后一行为 macosx: $(MAKE) all MYCFLAGS="-DLUA_USE_LINUX -arch i386" MYLIBS="-arch i386 -lreadline" 保存退出。
- 在当前文件夹执行make macosx 然后回车
- cd 到上一目录,执行sudo make install
- 完成之后执行lua -v 可以看到:
- Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio
2.安装Sublime Text2
1.下载http://sublime-text-2.cn.uptodown.com后打开;
{"cmd": ["/usr/local/bin/lua", "$file"],"file_regex": "^(...*?):([0-9]*):?([0-9]*)","selector": "source.lua"}
![]()
注:一定要保存在英文路径下,如果保存在中文路径下会出现如下异常:
- Traceback (most recent call last):
- File "./sublime_plugin.py", line 337, in run_
- File "./exec.py", line 130, in run
- UnicodeEncodeError: 'ascii' codec can't encode characters in position 36-37: ordinal not in range(128)
Windows:
下载LuaForWindows安装包安装,过程中如果出现无法连接服务器的情况,需要去微软补丁官网下载Microsoft Visual 2005 SP1的组件安装,重新安装即可。安装成功会出现交互模式(SciTE)和编译器(Lua)的icon,这样就可以直接在两个工具里面敲写脚本了:
SciTE需要建个类似文本的文件保存为后缀名为XXX.lua,运行需要在上面菜单点击运行三角图标:
PS:
学习基础的部分例子,初识lua,变学习变更新咯
--[[ function fact (n)
if n == 0 then
return 1;
else
return n*fact(n-1)
end
end
print("enter a number:")
a = io.read("*number") --读取一个数字
print(fact(a)) ]]--
--[[ line = io.read()
n = tonumber(line)
if n == nil then
error(line .. "is not a valid number")
else
print(n*2)
end ]]--
-- print(tostring(10) == "10") --> true
-- print(10 .. "" == "10") --> true
--[[ a = "hello"
print(#a) --> 5 #计算字符串的长度
print(#"good\0bye") --> 8 \0 占一个字符长度
]]--
--[[
for i = 1,10
do
print(i*10)
end
]]--
--[[
x = math.pi
print(x - x%0.01)
--]]
--[[
a = {}
for i = 1,10
do
a[i] = io.read()
end
local i = 1
while a[i] do
print(a[i])
i = i+1
end
]]--
--[[
for i = 10,1,-2 do
print("for:") print(i)
end
]]--
--[[
--泛型for的使用
a = {4,5,8,10,13,6,9,7}
for i,v in ipairs(a) -->打印value
do
print(v)
end
for i in pairs(a) -->打印key
do
print(i)
end
print(#a)
]]--
local testTable1 = {"a","b","c","d","e"}
local testTable2 = {1,2,3,4,5}
local testTable3 = {'a','b','c','d','e'}
local testTable4 = {"a","b","c",nil,"e"}
local testTable5 = {'a','b',nil,'d','e'}
local testTable6 = {1,2,nil,4,5}
local testTable7 = {"a","b","c","d",nil}
local testTable8 = {x = "a",y = "b",z = "c"}
local testTable9 = {"1","2","3"}
testTable9[5] = "5"
--testTable9[4] = "4"
print(#testTable1)
print(#testTable2)
print(#testTable3)
print(#testTable4)
print(#testTable5)
print(#testTable6)
print(#testTable7)
print(#testTable8)
print(#testTable9)
--[[
days = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}
revDays = {}
for k,v in ipairs(days)
do
revDays[v] = k
end
x = "Tuesday"
print(revDays[x])
]]--
--[[
--函数多值返回情况
function maximum (a)
local mi = 1
local m = a[mi]
for i,v in ipairs(a)
do
if v > m then
mi = i;m = v
end
end
return m,mi
end
print(maximum({8,10,23,12,5}))
]]--
--[[
-- 类似于格式化
print("for" .. 10)
--unpack:返回列表所有值
print(unpack{10,20,30})
]]--
--[[
--传入可变参数函数例子
function add(...)
local s =0
for i,v in ipairs{...} do
s = s + v
end
return s
end
print(add(3,4,10,25))
]]--