我只是在玩一些简单的lua编程,只是为了好玩。我正在做的程序只是简单地接受一个参数,并根据数字行打印出与自己的关系。它只是几个简单的公式和一个从数据构建和打印字符串的函数。
我的问题是,程序中的每个'if‘语句都返回错误“'=’expected 'if‘”
到目前为止,我已经尝试查看是否存在已知的版本问题(没有,也不知道为什么会有)
我已经修改了if语句,尝试了不同的比较器,用文字替换了所有变量,只剩下单个子句语句,但这些都不起作用。
这是我第一次尝试从终端运行lua。在过去,我只为Defold编写lua,从来没有遇到过这样的事情。
我将以该问题的一个实例为例:
function number_of_greats(generation)
local var g = math.abs(generation)
local var num_greats
if generation > -2 or generation then
num_greats = 0
else
num_greats = g-2
end
return num_greats
end错误为"expected '=' near '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发布于 2019-09-10 22:51:36
您不需要在lua中的变量定义中使用术语var。
如果你删除了它们,你的代码就会运行而不出错。
Lua是一种动态类型的语言。语言中没有类型定义;每个值都有自己的类型。
Programming in Lua: 2 – Types and Values
在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抛出了第一个变量“i”,并继续使用第二个名称。
function有一点不同,因为您可以通过几种不同的方式来编写定义:
local function x(y)
print(y)
end但以上只是语法上的糖:
local x = function(y)
print(y)
endhttps://stackoverflow.com/questions/57863266
复制相似问题