Lua脚本语言入门(目前魔兽使用的可以写在宏内的语言)(中文)(3)
{x=-5, y=4},
WOW的LUA脚本入门
{x=0, y=4}
}
-- Print the color
print(myPolygon[“color”])
-- Print it again using dot
-- notation
print(myPolygon.color)
-- The points are accessible
-- in myPolygon[1] to myPolygon[4]
-- Print the second point s x
-- coordinate
print(myPolygon[2].x)
程序说明
首先建立一个table, 与上一例不同的是,在table的constructor里面有{x=0,y=0},
这是什么意思呢? 这其实就是一个小table, 定义在了大table之内, 小table的
table名省略了.
最后一行myPolygon[2].x,就是大table里面小table的访问方式
.
NGACN
[cnarmory暂时无法使用]
快打伞
你发帖后被群众惨无人道的喷了。
变量的问题:
(1)lua似乎是不需要声明变量的,想用哪个变量那么用的时候直接赋值就可以了。根据赋值的类型那么变量就被自动定了类型了。 这样说对么? (当然,后面文章说到了这个例子:虽然这里i是一个整型量,Lua在处理的时候会自动转成字符串型,不需偶们费心。 -_-)
(2)
WOW的LUA脚本入门
文章里这样说:假如你要定义局部变量,则在第一次赋值的时候,需要用local说明。
那么我在写宏的时候经常直接赋值比如 mp=UnitMana("player")/UnitManaMax("player") ,那么这个mp就成了全局变量咯?
+++++++++++++++++++++++
逻辑运算的问题
(2)一般写宏的时候,and,or都有比较运算,所以还能理解,这里直接两个数值进行逻辑运算有点懵了,
没绕明白,比如说第一句就不太清楚,有false和nil的都清楚,因为给出了规则。楼主能解释一下么? (3)
a and b:如果a为false,则返回a;否则返回b
a or b:如果 a 为true,则返回a;否则返回b
这个规则怎么解释,还是说lua就是这样规定的没什么解释的
++++++++++++++++++++
结构的问题
(4)文章中说到了if...then....elseif....
可是现在写宏的时候很多人是if....then....if....then....if...这样嵌套的,也符合标准吧?
++++++++++++++++++
最后,谢谢楼主提供好文,,,,
NGACN
i miss you so much,that's true,,,,
1、没错,所有未经声明的变量都是全局的。。。。甚至包括你在function里定义的变量。我已经实验过,比如在一个宏里定义了一个变量a并赋值1,运行后,如果在另一个宏里也使用了变量a,宏里要是不重新赋值就调用的话,a的值就会还是你之前所使用的那个宏里赋的值1。
WOW的LUA脚本入门
但一般不用担心冲突,因为大多情况下,大多人在一个宏内使用一个新变量都会习惯重新赋值,一般不会引起太大的问题。但如果你是真正需要一些全局变量并能方便的识别他,可以这样,在宏中把作为局部变量的都用小写字母,要用做全局变量的用大写字母,因为Lua是严格区分大小写的,所以这样你就可以方便使用局部变量和全局变量了。
2、3、这个的确有点让人糊涂。。。我来这样解释把,其实你说的比较运算就是逻辑运算,都是一样。只是Lua扩大了and和or 的使用范围。
其实通常and和or所能使用的范围仅仅是布尔型的数值,所能得到的结果也是只有布尔型。即and和or只能对false和true进行运算,其结果也同样不是false就是true。运算情况如下:
false and true = false true and false= false
false and false = false true and true = true
false or true = true true or false = true
false or false = false true or true = true
但Lua扩大了and和or 所能运算的数据类型,为了使其也能运算其他类型的数据。所以才做出了这个方便的定义(当然,你说糊涂的定义也行)
a and b:如果a为false,则返回a;否则返回b
a or b:如果 a 为true,则返回a;否则返回b
现在我们可以用false和true替换a和b运算试试:
a=false b=true
false and true = false
false or true = true
a=true b=false
true and false = false
true or false = true
a=false b=false
false and false =false
false or false = false
a=true b=true
true and true = true
true or true =true
WOW的LUA脚本入门
看到了把,其实结果和我们之前正常的逻辑运算是一样的。Lua仅仅是扩大的and和or所能使用的范围而已。因为Lua本身对数据类型的定义没有苛刻的要求,所以她的运算也要能适应各种类型的数据才方便。(其实这也算不上什么解释,她就是这样的定义的,方便还是糊涂就是一念之间,哈哈)
3、当然符合标准啊,嵌套归嵌套的用法,elseif归elseif。这两种用法是不同的啊,虽然结果可能一样。但有些情况嵌套方便就用嵌套,elseif方便就用elseif罗。
NGACN
[cnarmory暂时无法使用]
快打伞
你发帖后被群众惨无人道的喷了。
下面是引用猪小小于2005-06-30 01:39发表的:
1、没错,所有未经声明的变量都是全局的。。。。甚至包括你在function里定义的变量。我已经实验过,比如在一个宏里定义了一个变量a并赋值1,运行后,如果在另一个宏里也使用了变量a,宏里要是不重新赋值就调用的话,a的值就会还是你之前所使用的那个宏里赋的值1。
但一般不用担心冲突,因为大多情况下,大多人在一个宏内使用一个新变量都会习惯重新赋值,一般不会引起太大的问题。但如果你是真正需要一些全局变量并能方便的识别他,可以这样,在宏中把作为局部变量的都用小写字母,要用做全局变量的用大写字母,因为Lua是严格区分大小写的,所以这样你就可以方便使用局部变量和全局变量了。
.......
false and true = false true and false= false
false and false = false true and true = true
false or true = true true or false = true
false or false = false true or true = true
其他问题都懂了,这个也明白了。
我一开始不懂的原因主要是被绕进去想Lua的既定法则是个什么东西
WOW的LUA脚本入门
后来一看上面的Quote部分(楼主的回答),就明白了,原来就是和普通的逻辑运算是一样的
简而言之,
and的成立条件必须是两个同时成立(也就是说两个给定条件都是True),
那么里面有一个false当然结果肯定就是false了
or的成立条件是两个条件里面至少有一个成立(也就是说至少要有一个True),
那么排除全是false的情况其他情况自然都成立
原来就是和其他语言里一样的逻辑运算
我也可以吃饭去了,
BTW:感谢楼主,非常热心,我的每一个 …… 此处隐藏:2851字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [资格考试]石油钻采专业设备项目可行性研究报告编
- [资格考试]2012-2013学年度第二学期麻风病防治知
- [资格考试]道路勘测设计 绪论
- [资格考试]控烟戒烟知识培训资料
- [资格考试]建设工程安全生产管理(三类人员安全员
- [资格考试]photoshop制作茶叶包装盒步骤平面效果
- [资格考试]授课进度计划表封面(09-10下施工)
- [资格考试]麦肯锡卓越工作方法读后感
- [资格考试]2007年广西区农村信用社招聘考试试题
- [资格考试]软件实施工程师笔试题
- [资格考试]2014年初三数学复习专练第一章 数与式(
- [资格考试]中国糯玉米汁饮料市场发展概况及投资战
- [资格考试]塑钢门窗安装((专项方案)15)
- [资格考试]初中数学答题卡模板2
- [资格考试]2015-2020年中国效率手册行业市场调查
- [资格考试]华北电力大学学习实践活动领导小组办公
- [资格考试]溃疡性结肠炎研究的新进展
- [资格考试]人教版高中语文1—5册(必修)背诵篇目名
- [资格考试]ISO9001-2018质量管理体系最新版标准
- [资格考试]论文之希尔顿酒店集团进入中国的战略研
- 全国中小学生转学申请表
- 《奇迹暖暖》17-支2文学少女小满(9)公
- 2019-2020学年八年级地理下册 第六章
- 2005年高考试题——英语(天津卷)
- 无纺布耐磨测试方法及标准
- 建筑工程施工劳动力安排计划
- (目录)中国中央空调行业市场深度调研分
- 中国期货价格期限结构模型实证分析
- AutoCAD 2016基础教程第2章 AutoCAD基
- 2014-2015学年西城初三期末数学试题及
- 机械加工工艺基础(完整版)
- 归因理论在管理中的应用[1]0
- 突破瓶颈 实现医院可持续发展
- 2014年南京师范大学商学院决策学招生目
- 现浇箱梁支架预压报告
- Excel_2010函数图表入门与实战
- 人教版新课标初中数学 13.1 轴对称 (
- Visual Basic 6.0程序设计教程电子教案
- 2010北京助理工程师考试复习《建筑施工
- 国外5大医疗互联网模式分析




