理解Lua中的类
我一直在Lua中玩,想知道为什么以及如何在Lua中定义“类”时“尝试调用字段‘copy’(nil value)”理解Lua中的类,lua,Lua,我一直在Lua中玩,想知道为什么以及如何在Lua中定义“类”时“尝试调用字段‘copy’(nil value)” Lua没有对象或类的概念;它们通常被实现为包含函数的表 该错误的原因正是它所说的:您正试图调用nil。 您正试图调用的函数,table.copy,因此当您试图调用它时,Lua会抱怨。这是因为: 如果某个变量未定义,则它是nil,这是一个有效的“值”,与C语言不同,C语言中不存在未定义的变量nil,这会导致错误 在几乎所有情况下,“尝试调用字段X(nil值)”应理解为“尝试调用不存在的
table.copy
,因此当您试图调用它时,Lua会抱怨。这是因为:nil
,这是一个有效的“值”,与C语言不同,C语言中不存在未定义的变量<但无法调用code>nil,这会导致错误table.copy
,因此当您试图调用它时,Lua会抱怨。这是因为:nil
,这是一个有效的“值”,与C语言不同,C语言中不存在未定义的变量<但无法调用code>nil,这会导致错误复制
或复制
?复制
或复制
?
local factionClass = {}
factionClass.Name = "throwaway"
function factionClass:New(name)
local newFaction = table.Copy(factionClass)
if name then
newFaction.Name = name
end
return newFaction
end
factionCoolguys = Faction("cool guys")