解决Lua语法缺失及替代措施

移动开发 iOS
解决Lua语法缺失及替代措施是本文要介绍的内容,主要是来了解LUA语法的学习。Lua的一个设计方针是简单,能不加入的语言特性就尽量不加入,一起来考哪本文如何来解决。

解决Lua语法缺失及替代措施是本文要介绍的内容,主要是来了解LUA语法的学习。Lua的一个设计方针是简单,能不加入的语言特性就尽量不加入。于是,Lua中缺少了一些我们常用的语法。下面仅以C语言做参考。

缺少continue语句,虽然对逻辑实现没本质影响。但让我们在编程时,代码结构的写法有一些生硬的感觉,不灵活。

缺少了switch-case语法,仅用if-elseif-else来替代,在选项比较多的时候,代码很难看,而且效率很低。

没有逻辑运算符 AND, OR, NOT ,这在有些标志位组合表达式的表达上带来诸多不便。

另外也说一下,觉得Lua里面设计得不爽的几点:

不等号是~=, 而不是!=。个人觉得!=表达不等于的意思更准确点,~更多的意思是“非”,“非”与“不等于”还是有区别的。当然,这可能是作者与我们喜好不同的原因了。

默认除法时是浮点除,而没有相应的整除运算,要获取整数还得使用math库的截取函数。

Continue语句通过打一个补丁实现了。

逻辑运算,!=运算符,逻辑运算符,位运算符,移位运算符也通过打一个补丁实现了。

但是Lua的官网上没找到Switch的补丁,找了一下,发现可以用Lua自身的表特性实现,而且很优雅哦。

Switch语句的替代语法(所有替代方案中觉得***,最简洁,***效,最能体现Lua特点的一种方案)

  1. action = {  
  2.   [1] = function (x) print(x) end,  
  3.   [2] = function (x) print( 2 * x ) end,  
  4.   ["nop"] = function (x) print(math.random()) end,  
  5.   ["my name"] = function (x) print("fred") end,  
  6. }  
  7.  
  8. while true do  
  9.     key = getChar()  
  10.     x = math.ramdon()  
  11.     action[key](x)  
  12. end 

小结:解决Lua语法缺失及替代措施的内容介绍完了,希望通过本文的学习能对你有所帮助!

责任编辑:zhaolei 来源: CSDN博客
相关推荐

2021-03-08 17:03:28

漏洞微软Exchange Se

2011-08-25 17:59:34

2011-08-29 16:23:29

Lua脚本

2018-01-18 23:06:54

2019-10-24 17:02:09

数据库操作系统技术

2012-10-23 10:19:28

2013-12-12 16:19:45

Lua脚本语言

2020-07-20 00:44:23

物联网安全物联网IOT

2019-02-27 07:35:01

恶意软件数据泄露网络防御

2011-08-25 16:20:33

Lua脚本变量

2009-06-19 21:18:23

2012-12-11 10:31:41

福布斯AMD股价崩盘

2015-05-13 10:36:43

2013-11-19 09:53:17

2012-02-15 23:09:16

haproxyserver

2011-07-22 18:19:37

SQL Server数交易日志

2022-07-26 14:43:34

网络安全云计算风险

2011-07-27 18:36:16

2011-08-24 10:13:00

Lua

2011-08-23 14:18:13

LUA 5.1编译vs2005
点赞
收藏

51CTO技术栈公众号