http://files.luaforge.net/releases/luaforwindows/luaforwindows/5.1.4-35/LuaForWindows_v5.1.4-35.exe
安装lua , 到最后一步的时候 ,勾选上 run example 看完这些就入门了,还是很好的
 
 
 
 
-- Example 14   -- Tables.
-- Simple table creation.
a={} -- {} creates an empty table
b={1,2,3} -- creates a table containing numbers 1,2,3
c={"a","b","c"} -- creates a table containing strings a,b,c
print(a,b,c) -- tables don‘t print directly, we‘ll get back to this!!
-------- Output ------
table: 006BB5B8 table: 006BB680 table: 006BB6F8
 
 
 
 
 
 
 
address={} -- empty address
address.Street="Wyman Street"
address.StreetNumber=360
address.AptNumber="2a"
address.City="Watertown"
address.State="Vermont"
address.County="USA"
print(address.StreetNumber, address["AptNumber"])
-------- Output ------
360     2a
 
 
 
下面这一段 应该和 a ? b : c 是一个意思
 
 
-- value = test and x or y
a=1
b=(a==1) and "one" or "not one"
print(b)
-- is equivalent to
a=1
if a==1 then
    b = "one"
else
    b = "not one"
end
print(b)
 
 
 
lua中 值的 不等于 ~=
 
 
a=1
while a~=5 do -- Lua uses ~= to mean not equal
    a=a+1
    io.write(a.." ")
end
-------- Output ------
2 3 4 5 
 
 
 
 
lua中的 do-while
 
 
a=0
repeat
    a=a+1
    print(a)
until a==5
-------- Output ------
1
2
3
4
5
 
 
 
 
 
for 循环,1,4 结果的猜测,1<6 打印1,1+3 =>4 ,4<6 打印4 ,4+3 >6跳出循环
 
 
-- Numeric iteration form. -- Count from 1 to 4 by 1. for a=1,4 do io.write(a) end print() -- Count from 1 to 6 by 3. for a=1,6,3 do io.write(a) end -------- Output ------ 1234 14 Press ‘Enter‘ key for next example
 
 
 
 
 
 
 
 
-- Sequential iteration form.
for key,value in pairs({1,2,3,4}) do print(key, value) end
-------- Output ------
1       1
2       2
3       3
4       4
 
 
 
 
 
a={1,2,3,4,"five","elephant", "mouse"}
for i,v in pairs(a) do print(i,v) end
-------- Output ------
1       1
2       2
3       3
4       4
5       five
6       elephant
7       mouse
 
 
 
 
 
lua while break
 
 
-- break is used to exit a loop.
a=0
while true do
    a=a+1
    if a==10 then
        break
    end
end
print(a)
-------- Output ------
10
 
 
 
 
 
lua的 function 和 JavaScript很像
 
 
-- Define a function without parameters or return value.
function myFirstLuaFunction()
    print("My first lua function was called")
end
-- Call myFirstLuaFunction.
myFirstLuaFunction()
-------- Output ------
My first lua function was called
Press ‘Enter‘ key for next example 
 
 
 
 
 
 
-- Define a function with a return value.
function mySecondLuaFunction()
    return "string from my second function"
end
-- Call function returning a value.
a=mySecondLuaFunction("string")
print(a)
-------- Output ------
string from my second function 
 
 
 
 
 
 
function a(a,b,c)
return a,b,c,"func"
end
 
 
lua的本地变量概念,如果和全局变量是一个变量,要在function内声明为local 变量
 
 
-- All variables are global in scope by default.
b="global"
-- To make local variables you must put the keyword ‘local‘ in front.
function myfunc()
    local b=" local variable"
    a="global variable"
    print(a,b)
end
myfunc()
print(a,b)
-------- Output ------
global variable  local variable
global variable global 
 
 
 
 
Lua的 string format..可别的语言差不多
 
 
-- An implementation of printf.
function printf(fmt, ...)
    io.write(string.format(fmt, ...))
end
printf("Hello %s from %s on %s\n",
       os.getenv"USER" or "there", _VERSION, os.date())
-------- Output ------
Hello there from Lua 5.1 on 10/07/15 21:06:22
 
 
 
 
 
lua类库分为标准库和扩展库,简单介绍
 
 
Standard Libraries Lua has standard built-in libraries for common operations in math, string, table, input/output & operating system facilities. External Libraries Numerous other libraries have been created: sockets, XML, profiling, logging, unittests, GUI toolkits, web frameworks, and many more. ]]
 
 
 
 
lua标准库——math,据说解释器不到200kb,太强大了
 
 
-- Example 32 -- Standard Libraries - math. -- Math functions: -- math.abs, math.acos, math.asin, math.atan, math.atan2, -- math.ceil, math.cos, math.cosh, math.deg, math.exp, math.floor, -- math.fmod, math.frexp, math.huge, math.ldexp, math.log, math.log10, -- math.max, math.min, math.modf, math.pi, math.pow, math.rad, -- math.random, math.randomseed, math.sin, math.sinh, math.sqrt, -- math.tan, math.tanh print(math.sqrt(9), math.pi) -------- Output ------ 3 3.1415926535898
 
 
 
 
标准库——table,感觉这个example比文档里面那一堆清晰
 
 
-- Example 34   -- Standard Libraries - table.
-- Table functions:
-- table.concat, table.insert, table.maxn, table.remove, table.sort
a={2}
table.insert(a,3);
table.insert(a,4);
table.sort(a,function(v1,v2) return v1 > v2 end)
for i,v in ipairs(a) do print(i,v) end
-------- Output ------
1       4
2       3
3       2
 
 
 
 
 
lua标准库——操作系统 api
 
 
-- Example 36 -- Standard Libraries - operating system facilities. -- OS functions: -- os.clock, os.date, os.difftime, os.execute, os.exit, os.getenv, -- os.remove, os.rename, os.setlocale, os.time, os.tmpname print(os.date()) -------- Output ------ 10/07/15 21:13:23
 
 
 
 
lua的gui. require("xx") 难道是 requirejs 这种写法的鼻祖 ?
 
 
-- Lua has support for external modules using the ‘require‘ function
-- INFO: A dialog will popup but it could get hidden behind the console.
require( "iuplua" )
ml = iup.multiline
    {
    expand="YES",
    value="Quit this multiline edit app to continue Tutorial!",
    border="YES"
    }
dlg = iup.dialog{ml; title="IupMultiline", size="QUARTERxQUARTER",}
dlg:show()
print("Exit GUI app to continue!")
iup.MainLoop()
 
 
 
 
 
 
 
大结局,官方推荐学习资料
 
 
[[
 To learn more about Lua scripting see
 Lua Tutorials: http://lua-users.org/wiki/TutorialDirectory
 "Programming in Lua" Book: http://www.inf.puc-rio.br/~roberto/pil2/
 Lua 5.1 Reference Manual:
     Start/Programs/Lua/Documentation/Lua 5.1 Reference Manual
 Examples: Start/Programs/Lua/Examples
]]
 
 
 
下面是我找到的几个很有用的工具书.
http://coolshell.cn/articles/10739.html
http://book.luaer.cn/
http://cloudwu.github.io/lua53doc/
http://dl2.iteye.com/upload/attachment/0052/3466/c6e246e1-7270-3220-bef5-5067eb30f7d2.pdf
有个IDE 貌似不错的样子,http://www.mydevelopersgames.com/LuaGliderInstaller.msi
原文:http://my.oschina.net/httpssl/blog/513975