2017-05-31 135 views
0

好的我到目前为止一直在使用Lua 2天,并且遇到了几个问题!请帮助我理解!为什么在打印“hello”时打印2会导致错误?

1:

>print "hello" 
hello 

>print ("hello") 
hello 

>print (2) 
2 

>print 2 
Error!! 

而且我已阅读文档和参考手册,但对于我这样的初学者,这是很难理解的语言!我仍然在学习教程和一本简单的书。

你也可以推荐我一个Windows以外的轻量级C IDE,除了Visual Studio,DEVC++,Geany,C-LION,code :: blocks,eclipse,qunicy吗?

+0

我不明白你的问题。我建议您将脚本写入文件保存为例如作为“MyFile.lua”,然后在命令行中运行同一个目录下的lua MyFile.lua。看起来你的一些麻烦与气候解释者有关。要了解lua,请查看http://troubleshooters.com/codecorn/lua/index.htm。这真的帮助我在当天学习卢阿。 – mode777

+0

看起来像lua不允许函数名称和左括号之间有任何空格。但为什么你需要这个? – Picard

+0

谢谢,但我正在使用Windows。所以我只能使用CMD作为lua解释器。 – LittlePcGuy

回答

2

从Lua的参考手册: 3.4.10 Function Calls

所有参数表达式呼叫之前进行评价。 f {fields}的 调用是f({fields})的语法糖;也就是说,参数列表 是一个新的表。 f'string'(或 f“string”或f [[string]])的调用是f('string')的语法糖;即 参数列表是单个文字字符串。

因此print 2给出了一个错误,因为函数调用没有语法糖,只有单个数字作为参数。为什么?我不知道。也许是因为你不可能有任何东西的语法糖:)

只要接受它。

+1

没有任何语法糖,因为你需要一个非平凡百分比的“非语法结构”来获得拼写错误的合理概率,更像是动态类型化的Lua 。在加载文件时,将'x = 2'或'x,2'拼写为'x 2'目前会导致错误,不仅在错误代码最终运行时出现错误。这比需要函数调用的圆括号更糟糕。 (如果一切都有意义,错别字只是改变意思(这可能是一个错误),并没有“缓冲空间”去“这是无稽之谈,你肯定是别的东西!”) – nobody