挂海论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
 友情提示:文字/图片广告均非网站意见,请担保交易勿直接付款,由此产生的责任自负
玩游戏来117游戏网(H5不下载也能玩手游传奇,吃鸡,竞技都有)不懂社区·好资源不错过·各位资源站大佬欢迎来采集搬运寻找会做《单机》游戏修改器的开发作者长期合作,价格不是问题!联系QQ:1874088565
IOS签名/udid证书出售/送证书加群1040456405 ██【我要租此广告位】██.
.. .
查看: 3574|回复: 1
打印 上一主题 下一主题

[基址相关] lua脚本语言快速入门教程

[复制链接]

10

积分

3

主题

0

听众
已帮网友解决0 个问题
好评
0
贡献
7
海币
18
交易币
0
跳转到指定楼层
楼主
发表于 2016-5-6 11:13:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提醒:若下载的软件是收费的"请不要付款",可能是骗子,请立即联系本站举报,执意要付款被骗后本站概不负责。(任何交易请走第三方中介,请勿直接付款交易以免被骗!切记).

友情提示:文字/图片广告均非本站意见,请担保交易勿直接付款,由此产生的责任自负!!!↑↑


lua作为很好的嵌入式语言可以非常好的作为c/c++补充,在游戏行业是得到了广泛的应用
一直在思考,能不能把他引入商业领域的规则语言呢?将业务规则经常变的部分提炼出来,
而无须重新编译程序。作为规则引擎的角色进行使用
使用前当然得安装一下去http://www.lua.org/下载一个 Lua_v5.1.4.23.exe安装,装完之后执行
可以用 lua.exe逐行解释的方式,或者写完脚本用lExecutor.wlua执行
1)先来个helloworld

[url=]复制代码[/url]代码如下:

> print 'helloWorld'
helloWorld
> print("helloWorld") --注释是这么写的!
helloWorld
> a='hello'
> print(a)
hello


2)主要类型
[url=]复制代码[/url]代码如下:

> a=1
> b="abc"
> c={}
> d=print
>
> print(type(a))
number
> print(type(b))
string
> print(type(c))
table
> print(type(d))
function
>


如上所示,lua主要有四种类型,即数字,字符串,table(其实理解可以理解为javascript的object),以及函数类型,
当然了,还有最常的bool型了,true以及false,(这里不考虑nil,以及userdata,thread等)
函数类型的变量,加上”() “即可以执行,如
[url=]复制代码[/url]代码如下:

> d(b)
abc


3)变量及常量,字符串
[url=]复制代码[/url]代码如下:

> a,b,c,d = 1,2,'c',{1}
> print (a,b,c,d)
      2       c       table: 0041BC58
> a="single 'quoted' string and double \"quoted\" string inside"
> b='single \'quoted\' string and double "quoted" string inside'
> c= [[ multiple line
>> with'single'
>
> print(a)
single 'quoted' string and double "quoted" string inside
> print(b)
single 'quoted' string and double "quoted" string inside
> print(c)
multiple line
with'single'
and "double" quoted strings inside.

> a=a.."看我给接上"  --字符串用两个..可以进行连接
> print(a)
single 'quoted' string and double "quoted" string inside看我给接上



我们关注一下lua比较特别的地方
1.声明变量及给变量赋值的时候,可以多变量一起赋值
2.字符串常量可以用双引号及单引号,并且混用的时候无须转义字符,跟php有点类型,还可以用”[[]]”括起来
这一点类似于c#里面字符串可以加上@符号,可以保留字符串内的格式
4)逻辑控制语句

[url=]复制代码[/url]代码如下:

> a=10 --逻辑控制语句就不费口舌了,反正就这几个词,跟pl/sql有点像
> if a==10 then
>> print("我是10")
>> elseif a== 11 then
>> print("我是11")
>> else
>> print("我是水户洋平等等")
>> end
我是10


5)循环结构
[url=]复制代码[/url]代码如下:

> --第一种while循环
> a=1
> while a~=10 do
>> io.write(a.."  ")
>> a=a+1
>> end
1  2  3  4  5  6  7  8  9  >
> --第二种repeat、until循环
> a=0
> repeat
>>      a=a+1
>>      print(a)
>> until a==5
1
2
3
4
5
> --第三种for循环
> for a=1,4 do
>>      io.write(a)
>> end
1234>
> --比较特别,有个步进的概念,如下是以2为步进
13> for a=1,4,2 do
>> io.write(a..' ')
>> end
1 3 > for a=1,5,2 do
>> io.write(a.. '  ')
>> end
1  3  5  >


6)函数及其使用

[url=]复制代码[/url]代码如下:

> --1.先来个最简单的
> function myFunc1()
>>      print("hello function")
>> end
> myFunc1()
hello function
> --2.再来个带参数的
> a=1
> b=2
> function myFunc2(par1,par2)
>>      return par1+par2
>> end
> c=myFunc2(a,b)
> print(c)
> --3.甚至可以返回多个变量
> a=1
> b=2
> function myFunc3(A,B)
>>      return B,A
>> end
> c = myFunc3(a,b) --c会等于返回的第一个,在此倒转过来即为2
> print(c)
> c,d=myFunc3(a,b) --当然如果给多个变量赋值就没有问题了
> print(c,d)
      1
> print(myFunc3(a,b)) --直接打印就把所有打印出来
      1
> --4.还可以是变参
> function myFunc4()
>> print()
>> end
> myFunc4(a,b,c,d)
      2       2       1



7)table(我觉得理解object也可以)的使用
[url=]复制代码[/url]代码如下:

> linbc={}
> linbc.sex = "男"
> linbc.age = 27
> print(linbc,linbc.sex,linbc["age"])
table: 0041ED50 男      27
> A=linbc
> print(A["sex"])
> print(A)  --引用类型,看A以及linbc内存地址是一样的
table: 0041ED50
>  --瞧这用法,跟javascript的用法基本相当
>  --其实还可以理解为hashmap似的键值对
> for i,v in pairs(linbc) do
>>    print(i,v)
>> end
age     27
sex     男
>  --也可以作为数组,下标是从1开始的喔
> arr={1,2,3,"a",'b',linbc}
> for i,v in pairs(arr) do
>>    print(i,v)
>> end
      1
      2
      3
      a
      b
      table: 0041ED50
>  --既然作为数组吧,那肯定是可以增加记录的吧
> table.insert(arr,A)
> table.foreach(arr,function(i,v) print(v) end)

a
b
table: 0041ED50
table: 0041ED50
> --瞧上面,可以foreach,还可以用匿名函数喔
> --当然也可以用下标访问了
> print(arr[1])
> --调用table.insert会自动给增加下标,如
> table.insert(linbc,"hello")
> print(arr[1])
1




联系我时,请说是在 挂海论坛 上看到的,谢谢!



上一篇:Lua学习教程
下一篇:Lua性能优化技巧
免责声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关。一切关于该内容及资源商业行为与www.52ghai.com无关。

2、本站提供的一切资源内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。

3、本站信息来自第三方用户,非本站自制,版权归原作者享有,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

4、如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵犯你版权的,请邮件与我们联系删除(邮箱:xhzlw@foxmail.com),本站将立即改正。

4

积分

1

主题

6

听众
已帮网友解决0 个问题
好评
0
贡献
3
海币
7
交易币
0
沙发
发表于 2016-5-18 13:33:28 | 只看该作者
真是难得给力的好帖子,回帖鼓励一下
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

免责声明|Archiver|手机版|小黑屋|挂海论坛

GMT+8, 2025-4-10 17:53 , Processed in 0.091244 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.2

本站资源来自互联网用户收集发布,如有侵权请邮件与我们联系处理。xhzlw@foxmail.com

快速回复 返回顶部 返回列表