解析Lua脚本语言入门代码

移动开发 iOS
Lua脚本语言入门代码是本文要介绍的内容,主要是来学习Lua脚本语言,具体内容来看本文通过代码如何来讲解Lua脚本语言。

Lua脚本语言入门代码是本文要介绍的内容,主要是来学习Lua脚本语言。近来游戏基本做的差不多了,大约5月底左右可以内测?现在正在快马加鞭增强其脚本功能。考虑到效率和库大小,功能等原因,暂决定使用<魔兽世界>采用的Lua语言进行嵌入支持.我可爱的Python和Ruby没被采用,怨念啊...下面是学习的一些代码,均在LuaEdit5.0上运行通过.

--> 实验类型  
 
print( type("HelloWorld") );  
print( type(10.4 * 3) );  
print( type(print) );  
print( type(type) );  
print( type(true) );  
print( type(nil) );  
print( type(type(x)) );  
 
print("-------------------------------")  
--> 实现同一变量对应多种类型  
 
print( type(a) )  
a = 10 
print( type(a) )  
a = "a string!!" 
print( type(a) )  
a = print 
a( type(a) )  
 
print("-------------------------------")  
--> 实现字符串部分替代保存和部分特殊转义符  
 
a = "My game is \n\"\'so\bso good" ;  
b = string.gsub( a, "ga", "ha" );  
print( a );  
print( b );  
 
print("-------------------------------")  
--> 实现Asc码和字符之间的替换表示  
 
print("\097\102a")    ;  
print("100" + 2 * "5" ) ;  
 
print("-------------------------------")  
--> 用于测试字符串链接,数字自动转换字符串  
 
print("Hello".."World");  
sString = [[  
你好,现在是在测试大段的String类型,  
将使用这两个符号进行表示  
测试希望能够顺利结束.  
    ]];  
print( sString );  
 
print( 10 .. 20 );  
 
line = 100 
n = tonumber(line)  
if ( n == nil )  
then error("您输入的值" .. line .. "无法正常转换为浮点数!")  
else print( n^2 )  
end  
 
print( 10 == "10" )  
print( tostring(10) == "10" )  
 
print("-------------------------------")  
--> 不等于符是 ~=   不再是 !=  
 
if( a ~= nil )  
then print(a)  
else print(" a为空 ")  
end  
 
print("-------------------------------")  
--> == 号是进行两个变量的地址进行比较,所以2例中的a和c是不相等的  
 
a = 1;  
b = a;  
c = 1;  
if( a == b )  
then print( "a=b" )  
else print( "a~=b" )  
end  
 
if( a == c )  
then print( "a=c" )  
else print( "a~=c" )  
end  
 
a = {};  
a.x = 1;  
a.y = 2;  
 
b = {};  
b = a;  
 
c = {};  
c.x = 1;  
c.y = 2;  
 
if( a == b )  
then print( "a=b" )  
else print( "a~=b" )  
end  
 
if( a == c )  
then print( "a=c" )  
else print( "a~=c" )  
end  
 
print("-------------------------------")  
 
print( 2 < 5 )  
--> print( a < b )       --> Lua不会自动将char转换为int  
--> print( a < 1 )  
print( "2" + 1 < 2 )  
--> print( "3" < 2 )     --> 不合法  
print( "3" > "2" )       --> 合法  
 
print("-------------------------------")  
--[[  
* 逻辑运算符认为false和nil是假,0和其他一切都为true  
* and 和 or 的预算结果不再是true或false,Lua中,它类似于一个三元运算符  
* a and b   若a为false,则返回a,否则返回b  
* a or b    若a为true,则返回a,否则返回b  
--]]  
 
print( 4 and 5 )  
print( nil and 13 )  
print( false and 13 )  
print( 4 or 5 )  
print( false or 5 )  
 
--[[  
*    实用技巧: 若a为空值则将b赋给a  
*              aa = a or b  
*    另外,and 的优先级比 or 高.  
*    not 的结果只有true或false  
--]]  
 
print( not 0 )           --> 注意,0也是true  
print( not false )  
print( not nil )  
print( not true )  
print( not hahahaha )    --> hahahaha变量未赋值,认为是nil  
print( not not true )  
a = "hahahaha" 
print( not not a )  
if( a == "hahahaha" )  
then print(" a还是\"hahahaha\" ");  
else print(" a已经是true ");  
end  
print("-------------------------------")  
--> 表的使用  
 
a = { 1, 3, 6, 0 }  
print( a[2] );         --> 注意,结果是3,说明Lua表索引是以1开始的,不是C/C++一样以0开始  
 
print("-------------------------------")  
--> 表是动态的,允许顺时进行修改  
 
w = { x = 0y = 0label = "呵呵" }  
x = {}  
w[1] = "嘿嘿"  
x.f = w 
print(w[1])  
print(x[1])  
print(x.f[1])  
 
print("-------------------------------")  
--> function函数  
 
function Fun( a, b )  
local c = a^2 + b^2 ;  
return math.sqrt(c)  
end  
 
print( Fun( 3, 4 ))   ;  
 
print("-------------------------------")  
--> Loops循环,从第一个参数到第二个参数,第三个参数是步长,中间以逗号分割  
 
for i = 1,5,2  
do   print("现在的I值是" .. i )  
end  
 
print("-------------------------------")  
--> Loops循环+Conditionals条件  
 
for i = 1,6  
do if i < 3 
         then print("数字很小")  
      elseif i < 5 
           then print("数字一般")  
           else print("数字比较大")  
end  
end  
--[[  
*    Lua不近然ObjectPascal,没必要每个begin对应一个end  
*    即使多个if,也是一个end就足够  
--]]  
print("-------------------------------")  
 
myData = { 2 }  
myData[0] = "111"  
myData["yumen"] = "duzhi"  
 
for key,value in myData  
do print( key .. "=" .. value )  
end  
--[[  
*    Lua允许以字符串做为下标,这点十分类似STL中的map映射  
*  
--]]  
print("-------------------------------")  
 
--> 嵌套Table 以及 两种访问模式  
myTable = { color = "blue"sex = 1x = 0;  
    { x = 1y = 2 }, { x = 2y = 3 } ,  
    { x = 3y = 4 }, { x = 4y = 5 }  
     }  
print( myTable.color );  
print( myTable["color"]) ;  
print( myTable[1].x );  
 
print("-------------------------------")  
 
--> 支持不定参数  
function Fun( ... )  
for i = 1, arg.n  
   do print( arg[i] )  
end  
end  
 
Fun("1", "2", dhsag, 1, nil, true )  
--[[  
*    传来的参数自动的存放在了一个名为 arg 的Table中了  
*    其中arg.n就是arg中存放参数的个数  
--]]  
 
print("-------------------------------")  
 
--> 以table表做参数  
function Fun( t )  
for k,v in t  
      do print( k .. "=" .. v )  
end  
end  
 
Fun({ x = 10y = 20 });  
Fun{ x = 10y = 20 };  
--[[  
*    虽然仅仅是调用单个Table做为参数  
* 调用处不加小括号也可以,但是不支持这种写法.可读性低.  
--]]  
 
print("-------------------------------") 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.
  • 97.
  • 98.
  • 99.
  • 100.
  • 101.
  • 102.
  • 103.
  • 104.
  • 105.
  • 106.
  • 107.
  • 108.
  • 109.
  • 110.
  • 111.
  • 112.
  • 113.
  • 114.
  • 115.
  • 116.
  • 117.
  • 118.
  • 119.
  • 120.
  • 121.
  • 122.
  • 123.
  • 124.
  • 125.
  • 126.
  • 127.
  • 128.
  • 129.
  • 130.
  • 131.
  • 132.
  • 133.
  • 134.
  • 135.
  • 136.
  • 137.
  • 138.
  • 139.
  • 140.
  • 141.
  • 142.
  • 143.
  • 144.
  • 145.
  • 146.
  • 147.
  • 148.
  • 149.
  • 150.
  • 151.
  • 152.
  • 153.
  • 154.
  • 155.
  • 156.
  • 157.
  • 158.
  • 159.
  • 160.
  • 161.
  • 162.
  • 163.
  • 164.
  • 165.
  • 166.
  • 167.
  • 168.
  • 169.
  • 170.
  • 171.
  • 172.
  • 173.
  • 174.
  • 175.
  • 176.
  • 177.
  • 178.
  • 179.
  • 180.
  • 181.
  • 182.
  • 183.
  • 184.
  • 185.
  • 186.
  • 187.
  • 188.
  • 189.
  • 190.
  • 191.
  • 192.
  • 193.
  • 194.
  • 195.
  • 196.
  • 197.
  • 198.
  • 199.
  • 200.
  • 201.
  • 202.
  • 203.
  • 204.
  • 205.
  • 206.
  • 207.
  • 208.
  • 209.
  • 210.
  • 211.
  • 212.
  • 213.
  • 214.
  • 215.
  • 216.
  • 217.
  • 218.
  • 219.
  • 220.
  • 221.
  • 222.
  • 223.
  • 224.
  • 225.
  • 226.
  • 227.
  • 228.
  • 229.
  • 230.
  • 231.
  • 232.
  • 233.
  • 234.
  • 235.
  • 236.
  • 237.
  • 238.
  • 239.
  • 240.
  • 241.
  • 242.
  • 243.
  • 244.
  • 245.
  • 246.
  • 247.
  • 248.
  • 249.
  • 250.

小结:解析Lua脚本语言入门代码的内容介绍完了,希望通过本文的学习能对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-08-22 16:59:28

Lua

2011-08-25 10:40:21

Lua游戏

2011-08-23 09:44:28

LUA脚本

2011-08-22 18:08:09

Lua脚本

2011-08-22 17:41:23

LUA 脚本 语言

2011-06-22 14:07:42

Lua

2011-08-25 11:02:04

2011-08-25 09:55:27

2011-08-24 13:32:17

2011-08-25 14:26:40

LUA数据文件

2010-03-25 16:31:55

Python代码

2010-02-24 14:04:32

Python脚本语言

2009-06-10 08:41:15

Linux脚本语言

2010-02-26 09:33:51

Python脚本

2012-07-16 11:23:18

LinuxWindows脚本语言

2011-08-16 10:03:45

Groovy编程语言Web

2011-09-07 09:51:27

Javascript

2010-02-26 13:03:31

Python脚本语言

2011-08-24 17:05:01

Lua

2011-08-25 13:22:40

CEGUILua脚本
点赞
收藏

51CTO技术栈公众号