If statement Lua5.2.4:如果语句语法错误,我可以';我没有发现我的代码有任何错误

If statement Lua5.2.4:如果语句语法错误,我可以';我没有发现我的代码有任何错误,if-statement,lua,If Statement,Lua,我只是为了好玩而玩弄一些简单的lua编程。我正在开发的程序只需要接受一个参数,并根据一行数字打印出与自己的关系。它只是几个简单的公式和一个函数,用于从数据中构建和打印字符串 我的问题是,程序中的每一个“if”语句返回时都会出现错误“'=”应该在“if”附近 到目前为止,我试着看看是否存在已知的版本问题(没有,我也不知道为什么会有) 我搞乱了我的if语句,尝试了不同的比较器,用文本替换了所有变量,简化为单子句语句,但这些都不起作用 这是我第一次尝试从终端运行lua。在过去,我只为迪福写过《卢阿》,

我只是为了好玩而玩弄一些简单的lua编程。我正在开发的程序只需要接受一个参数,并根据一行数字打印出与自己的关系。它只是几个简单的公式和一个函数,用于从数据中构建和打印字符串

我的问题是,程序中的每一个“if”语句返回时都会出现错误“'=”应该在“if”附近

到目前为止,我试着看看是否存在已知的版本问题(没有,我也不知道为什么会有)

我搞乱了我的if语句,尝试了不同的比较器,用文本替换了所有变量,简化为单子句语句,但这些都不起作用

这是我第一次尝试从终端运行lua。在过去,我只为迪福写过《卢阿》,从来没有遇到过这样的事情

我将举一个问题的例子:

功能编号(第代)
局部变量g=math.abs(生成)
局部变量
如果生成>-2或生成,则
num_greats=0
其他的
最大数量=g-2
结束
返回最大数
结束
错误是
“预期的'='接近'if'”

预期结果是,函数返回函数G(gen)的任意一个结果,具体取决于gen的拟合范围

生成是数字上的一个位置。负代表祖先,正代表继承人

数学函数为:

G(gen) = |gen| - 2 for gen < -2 and gen > 2
G(gen) = 0 for -2 < gen < 2
G(gen) is the number of "greats" in the relationship title
G(gen)=| gen |-2表示gen<-2和gen>2
G(gen)=0表示-2
在lua变量定义中不需要术语
var

如果删除它们,则使用“无错误运行”来删除代码


Lua是一种动态类型语言。该语言中没有类型定义;每个值都有自己的类型

在Lua中,不声明变量的类型,而是让变量的值定义类型

这意味着无需执行以下操作:

local number i = 7
local boolean check = false
local string str = "hello world"
相反,你是这样做的

local i = 7
local check = false
local str = "hello world"
现在,上面两个代码块都将无错误地运行,但是第一个代码块只会这样做,因为我们对变量应用了一个值。如果我们删除了分配,则会出现以下错误:

local number i
我不明白为什么作业会让这个“可以接受”。我相信这是因为Lua抛出了第一个变量“name”,即
number
,然后是第二个
I


函数
有点不同,因为您可以用几种不同的方式编写定义:

local function x(y)
    print(y)
end
但以上只是语法糖:

local x = function(y)
    print(y)
end

只需在
local var g
中删除
var
。LuaYu Hao中没有关键字
var
。如果正确的话,这些定义中不应该有
var
,但是你的问题是你有
local var num greats
这个
var
导致了错误。如果将
放在
var
之后,则会更正错误。顺便说一句,如果我们有
本地函数
为什么没有
本地var
?:-)谢谢你们的帮助,伙计们。我不敢相信那是多么愚蠢的错误。我应该删除这个问题,还是它对其他lua初学者有任何价值?非常感谢。多么愚蠢的错误!我想我以为我在用JS什么的。