Lua - 尝试调用方法'new' (一个空值)
2011-4-6 18:55:11
收藏:0
阅读:186
评论:2
新手 Lua,试图使用 middleclass 库实现面向对象编程。
main.lua:
require 'middleclass'
require 'Person'
local testPerson = Person:new("Sally"); // 出现运行时错误: 尝试调用方法'new' (一个空值)
testPerson:speak();
Person.lua:
module(..., package.seeall)
require 'middleclass'
Person = class('Person');
function Person:initialize(name)
self.name = name;
print("INITIALIZE: " .. self.name);
end
function Person:speak()
print('Hi, I am ' .. self.name ..'.')
end
我为什么会得到这个错误?
原文链接 https://stackoverflow.com/questions/5571490
点赞
stackoverflow用户490123
上面的'Judge'的回答是不正确的 - 没有必要包括"middleclass.init"并且有上面显示的文件夹结构。
如Github项目wiki所述,您只需下载许可证和'middleclass.lua',将这些文件放置在您的代码目录中,然后只需运行
require("middleclass");
请确保文件中使用middleclass时没有模块声明,例如不要有
module(...,package.seeall)
2011-08-14 12:35:53
评论区的留言会收到邮件通知哦~
推荐文章
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
首先,行末的分号不是必需的,可能是编写 Lua 代码的一种不良习惯。其次,我在两个文件中将
require 'middleclass'
更改为require 'middleclass.init'
,并删除了module(..., package.seeall)
。之后,在我的计算机上使用 Lua 5.1.4 运行示例代码正常。main.lua
require 'Person' local testPerson = Person:new("Sally") testPerson:speak()
Person.lua
require 'middleclass.init' Person = class('Person') function Person:initialize(name) self.name = name print("INITIALIZE: " .. self.name) end function Person:speak() print('Hi, I am ' .. self.name ..'.') end
您可能直接包含了 middleclass.lua 文件。但它并不是这样设置的。意图是包括 _middleclass/init.lua_。
如果您按照下面所示将两个文件使用并排放置在文件夹中,则可正常工作。