开始学习Lua编程,首先从一些简单的语法开始。

一、编辑环境

下面推荐一个Lua编程的IDE,感觉是很强大的。ZeroBrane Studio,windows平台,mac平台都有。点击打开链接  官方下载地址

二、开始一些简单的编程(代码参考自http://blog.csdn.net/xiaominghimi/article/details/8770395的例子)

具体语法参考我的上一篇(转载)博客

-- 单行注释语句

--[[
注释段落语句
]] --引用其他lua文件,不需要加上(.lua)后缀
--require "xx" --变量不需要定义,可以直接赋值
count = 100 --成员变量
local count =100 --局部变量 --方法定义
function hello(...)
--打印
print("Hello Lua!");
print(string.format(...))
end -- 每一行代码不需要使用分隔符,当然也可以加上
-- 访问没有初始化的变量,lua默认返回nil -- 调用函数形式
hello("你懂的") --输出:
--Hello Lua!
--你懂的 --打印变量的类型
isOK =false
print(type(isOK)) --输出:
--boolean -- 基本变量类型
a =nil --Lua 中值为nil 相当于删除
b =10
c =10.4
d =false
--定义字符串,单引号,双引号都可以的
e ="i am"
d ='himi' --两个字符串的连接可以如下形式
stringA ="Hi"
stringB ="mi"
--可以用".."符号,连接两个字符串
print(stringA..stringB) --输出:
--Himi --另外Lua也支持转移字符,如下
print(stringA.."\n"..stringB); --输出:
--Hi
--mi --修改字符串的部分gsub,可以如下形式:(将stringA字符串中的Hi修改为WT)
stringA=string.gsub(stringA,"Hi","WT")
print(stringA); --输出:
--WT --将字符换成数字tonumber(不转也会自动转)
--将数字换成字符tostring(不转也会自动转)
stringC = "100"
stringC = tonumber(stringC)
stringC = stringC +20
stringC = tostring(stringC)
print(stringC) --输出:
--120 --取一个字符串的长度使用 #
print(#stringC) --输出:
--3 --创建 表
tableA ={}
m = "x"
tableA[m] =100
m2 ='y'
tableA[m2] =200
print(tableA["x"].."\n"..tableA.y) --输出:
--100
--200 --另外表还可以如下形式(从1开始)
tableB ={"4","5","6","7","8"}
print(tableB[1]) --输出:
--4 --算术操作符
c1 = 10+2
c2 = 10-2
c3 = 10*2
c4 = 10/2
c5 = 10^2
c6 = 10%2
c7 = -10+2
print(c1.."_"..c2.."_"..c3.."_"..c4.."_"..c5.."_"..c6.."_"..c7) --输出:
--12_8_20_5_100_0_-8 --控制操作
--if then elseif then else end
abc =10
if abc ==10 then
print("v1")
elseif abc == 9 then
print("v2")
else
print("v3")
end --输出:
--v1 --for 变量=初值, 终点值, 步进 do ... end
--从4(第一个参数)涨到10(第二个参数),每次增长以2(第三个参数)为单位
for i=4,10,2 do
print("for1:"..i+1)
end --[[输出:
for1:5
for1:7
for1:9
for1:11
]] --也可以不制定最后一个参数,默认1的增长速度
for i=4,10 do
print("for2:"..i+1)
end --[[输出:
for2:5
for2:6
for2:7
for2:8
for2:9
for2:10
for2:11
]] tableFor = {"himi1","himi2","himi3","himi4","himi5"}
for k,v in pairs(tableFor) do
print("for3:key:"..k.."value:"..v)
end --[[输出:
for3:key:1value:himi1
for3:key:2value:himi2
for3:key:3value:himi3
for3:key:4value:himi4
for3:key:5value:himi5
]] --while w1 = 20
while true do
w1=w1+1
if w1 ==25 then
break
end
end
print("while:"..w1) --输出:
--while:25 --repeat aa =20
repeat aa = aa+2
print("repeat:"..aa)
until aa>28 --[[输出:
repeat:22
repeat:24
repeat:26
repeat:28
repeat:30
]] --关系操作符
--需要注意的是不等于符号 ~= 而不是!=
ax =10
bx =20 if ax >bx then
print("GX1")
elseif ax<bx then
print("GX2")
elseif ax>=bx then
print("GX3")
elseif ax<=bx then
print("GX4")
elseif ax==bx then
print("GX5")
elseif ax~=bx then
print("GX6")
else
print("GX7")
end --输出:
--GX2
--函数详解

--有一个返回值的函数
function funTestBackOne(aCount)
local aCount= aCount+1
return aCount
end a =20
print(funTestBackOne(a)) --有多个返回值的函数
function funTestBackMore()
return 2,3
end a,b =funTestBackMore()
print(a.." and "..b) --有变长参数的函数
function funTestUnKnow(...)
print(...)
end
funTestUnKnow(a,b,"Himi") --闭合函数(一个函数写在另外一个函数内)
function funTest1( ... )
local d = 12;
d=d+...
function funTest2( ... )
print(d)
end
funTest2()
end funTest1(100) --[[ print:
21
2 and 3
2 3 Himi
112
]]

这些都是简单的基础,大致入门的语法吧。

最新文章

  1. 图表插件Charts.js的使用
  2. linux 软件的安装与Tarball
  3. svn 相关
  4. MongoDB命令行操作
  5. css浮动Float
  6. Java-高效地使用Exception-实践
  7. Ext3和Ext4文件系统区别
  8. Webservice接口的调用
  9. 015-OC基础语法-OC笔记
  10. DB Query Analyzer 6.01 is released, SQL Execute Schedule function can be used
  11. docker内安装php缺少的扩展mysql.so和mysqli.so
  12. .NET Core[MVC] 利用特性捕捉异常
  13. Django Rest Framework之版本控制
  14. oracle 监听 添加ip
  15. Variational Inference
  16. python3.6 django2.06 使用QQ邮箱发送邮件
  17. java 总结代码块
  18. CSS3实战之content
  19. Activity相关知识点总结
  20. seek()和tell()在文件里转移

热门文章

  1. SetTimeOut jquery的作用
  2. Python默认模块 os和shutil 实用函数
  3. ArcGIS For JavaScript API 默认参数
  4. .NET中 MEF应用于IOC
  5. phpcms v9 企业黄页加入企业会员提示“请选择企业库类型!”
  6. OC类的本质,深入探讨,load方法和initialize方法
  7. Linux下卸载和安装MySQL[rpm包]
  8. eclipse不能创建java虚拟机-解决方法
  9. HTTP 错误 404.3 - Not Found由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射
  10. 1226: [SDOI2009]学校食堂Dining - BZOJ