【Lua基础】Lua入门24式

例1 第一个程序

--经典hello程序

1
print( "hello" )

--输出

hello


例2 注释

--单行注释使用“--”即可

--[[多行注释以“--[[”开始,以“]]”结束]]

--当然本例没有输出,因为它全部是注释


例3 变量

--变量有值的时候才有类型,否则变量本身是无类型的

1
2
3
4
5
6
7
8
9
a=1  
b= "abc"  
c={}  
d=print  
   
print(type(a))  
print(type(b))  
print(type(c))  
print(type(d))

--输出

number

string

table

function


例4  变量名

--变量名由字母、数字、下划线构成

--不以数字开头:

  • one_1=11--合法

  • 1_one非法


例5 更多的变量名

--[[在Lua中以下划线”_”开始的参数命名通常代表特殊的值,如(“_VERSION”),所以尽量不用使用以下划线开始命名。当时通常单个“_”代表虚假的参数。注:这是Lua的一个语法,后面将讲到,如:local _, x = string.find(s, p) ]]

1
print(_VERSION)

--输出

Lua 5.1


例6 --严格区分大小写

-- 在Lua中所有的变量和关键字都是大小写敏感的

1
2
3
4
ab=1  
Ab=2  
AB=3  
print(ab,Ab,AB)

--输出

1 2 3


例7 关键字

--[[ Lua的关键字大家可以去参考“Lua Reference Manual”,附:5.1版本的参考手册在线地址:http://www.lua.org/manual/5.1/index.html

变量命名的时候应避免使用关键字,应Lua是大小写区分的,所以“and”是关键字,但“AND”不是是合法的命名,尽管如此,建议大家尽量不要用关键字(各种大小写版本)]]

-- Lua 涉及的关键字有: and, break, do, else, elseif,end, false, for, function, if, in, local, nil, not, or,repeat, return, then, true, until, while。


例8 --String 字符串

--[[字符串可以用双引号(“”)也可以用单引号(‘’),类似于JavaScript语法,对于多行字符串,使用“[[ ]]”括起来 ]]

1
2
3
4
5
6
7
8
9
a= "single 'quoted' string and double \"quoted\" string inside"  
b= 'single \'quoted\' string and double "quoted" string inside'  
c= [[ multiple line  
with  'single'  
and  "double"  quoted strings inside.]]  
    
print(a)  
print(b)  
print(c)

--输出

single 'quoted' string and double "quoted" string inside

single 'quoted' string and double "quoted" string inside

 multiple line

with 'single'

and "double" quoted strings inside.


例9 赋值

--可以一次对多个变量赋值,规则:如果等号(“=”)右边多了,则舍弃,左边多了,则赋值为空(nil) 

1
2
3
a,b,c,d,e = 1, 2,  "three" "four" , 5  
    
print(a,b,c,d,e)

-- 输出

1       2       three   four    5


例10 其它赋值

-- 表达式 a,b=b,a表示a和b的值交换,注:类型不一样照样可以交换


例11 数字

-- string and a number). – 在Lua中两点“..”表示字符串连接,对应其他语言中的“+”连接

1
2
a,b,c,d,e = 1, 1.123, 1E9, -123, .0008  
print( "a=" ..a,  "b=" ..b,  "c=" ..c,  "d=" ..d,  "e=" ..e)

--输出

a=1     b=1.123 c=1000000000    d=-123  e=0.0008


例12  多种输出方法

--多种输出方式或写法

  • print "Hello from Lua!"    -- 不带括号

  • print("Hello from Lua!")   -- 带括号,两者等价

--[[什么时候可以省略括号?  这是以种特殊的情况,只有当函数的参数只有一个,而且这个参数是字面上的字符串串(a literal string:即直接传字符串,而不是值为字符串的参数变量)或者蚕食是table结构。这两种情况才可以省略圆括号]]


例13 另一种输出方法

--io.write("hehe"),但是io.write()是不会换行的,可以使用print()来实现换行


例14 Tables

-- 表结构在Lua中特别常见,可以存储任何类型,很灵活。非常类似于JS中的一个对象。

1
2
3
4
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 !!

--输出

table: 0050C840 table: 0050C390 table: 00500C958 --这个结果是变化的


例15 其它表tables

-- Lua中表结构和JS中的对象一样可以随时增加或删除(直接赋值nil)属性。

--[[ 读取有多种方式,可以用点“.”的方式,也可以用索引index,不过在Lua有点特殊,首先索引是从一开始,其次index=1并不一定是第一个元素值,比如下面的address[1]=nil,而不是“Wyman Street”,具体的以后在讲]]

1
2
3
4
5
6
7
8
9
address={} -- empty address  
address.Street= "Wyman Street"  
address.StreetNumber=360  
address.AptNumber= "2a"  
address.City= "Watertown"  
address.State= "Vermont"  
address.Country= "USA"  
    
print(address.StreetNumber, address[ "AptNumber" ])

--输出

360       2a


例16  -- if else statement.  if else语句

-- Lua中的语句块语法有点类似VB都是以end结束

1
2
3
4
5
6
a=1  
if  a==1 then    --注: if  和elseif后面都一样需要条件+then  
     print ( "a is one" )  
else  
     print( "a is't one" )  
end

--输出

a is one


例17 条件语句

--注:value = test and x or y 等价于我们平时写的三元运算符(“?:”)的效果 value= test?x:y


例18 while语句和repeat until语句

--repeat until 类似于C++里面的for循环

1
2
3
4
5
6
7
8
9
10
a=1  
while  a~=5  do  -- Lua uses ~= to mean not equal  
     a=a+1  
     io.write(a.. " " )  
end  
a=0  
repeat  
     a=a+1  
     print(a)  
until a==5

 

例19 for语句

-- for语句有两种变体,一种叫 Numeric for ,一种叫 Generic for 就是例20中的for…in结构

--[[ Numeric for 的语法为:for var=exp1,exp2,exp3 do something end 等价于C#中的:for(int i=exp1; i<=exp2; i+=exp3) { something } ]]

1
2
3
4
5
6
7
8
9
-- 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

--输出

1234

14


例20 更多的for语句

--for语句的Generic for变体

1
for  xm_key,xm_value in pairs({1,3,5,7})  do  print(xm_key,xm_value) end

--输出

1      1

2      3

3      5

4      7

--因此可以用这种方法来打印简单的table


例21 break跳出循环

1
2
3
4
5
6
7
8
9
a=0  
while  true  do  
     a=a+1  
     if  a==10 then  
         break  
     end  
end  
    
print(a)

--输出

10


例22  函数

--[[ 使用函数返回值对多个变量赋值,规则和多参数赋值一样,如果函数返回值多了,则抛弃,少了则少的赋值为nil  ]]

1
2
3
4
5
6
function myFirstLuaFunctionWithMultipleReturnValues(a,b,c)  
     return  a,b,c, "My first lua function with multiple return values" , 1,  true  
end  
    
a,b,c,d,e,f = myFirstLuaFunctionWithMultipleReturnValues(1,2, "three" )  
print(a,b,c,d,e,f)

--输出

1       2       three   My first lua function with multiple return values

1                        true


例23  变量作用域

--[[ 在Lua中,默认声明的变量为全局变量,以local 为修饰符的为局部变量,局部变量只在所属的语句块内有效]]


例24 字符串格式

--[[ 字符串格式大家可以去参考Lua参考手册“Lua Reference Manual” http://www.lua.org/manual/5.1/index.html

这里重点说明一下在这些例子中第一次见到三个点“…”的作用,在Lua中在函数的参数列表中,表示参数的格式是可变不固定的,当这个函数在被调用时,函数的所有参数都被存储在一个名为arg的表结构中,同时arg还有一个n属性,代表实际传入的可变参数的个数,那么可以通过arg来访问所有的可变参数了,细节的以后再讲]]

1
2
3
4
5
6
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())

--输出

Hello there from Lua 5.1 on 14/03/06 11:48:19


Cocos引擎中文官网现面向广大Cocos引擎相关开发者征集优秀教程,欢迎大家投稿!来稿请发送至:support@cocos.org。


来源网址:http://blog.csdn.net/q229827701/article/details/20609399

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值