求解,有没有大佬在线解答function class(...
lua吧
全部回复
仅看楼主
level 11
无垠♬ 楼主
求解,有没有大佬在线解答
function class(...)
-- TODO
end
--实现 class 方法
A = class{
name = string,
age = int,
foo = function()
print("from A",name,age)
end,
}
B = class{
__super = A,
foo = function()
print("from B",name,age)
end,
}
local a = A()
a.name = "hanmeimei"
a.age = 17
a:foo()
local b = B()
b.name = "lilei"
b.age = 18
b:foo()
a.name = 20
a.age = "20"
b.foo = "x"
-- 输出
-- from Ahanmeimei17
-- from Blilei18
-- 类型不匹配:name 的类型是 string
-- 类型不匹配:age 的类型是 number
-- 函数不能赋值
2019年06月04日 03点06分 1
level 11
无垠♬ 楼主
召唤大佬
2019年06月04日 04点06分 2
level 4
这个问题我见到别人问过我,好像是啥面试题??面哪的。
2019年06月04日 04点06分 3
level 1
。。。我lua只是学脚本了解过不精通,但是你这个代码问题都写清楚了你还不懂,name是字符串类型你赋值的是数字,age是数字类型你赋值的是字符串
2019年06月06日 09点06分 4
题目是实现class方法,下面是输出
2019年06月06日 09点06分
level 4
请把题目写正确,有些地方明显不对
2019年06月20日 06点06分 5
这个题目就是这样的我见过别人问我,我给了问我的人一个解决方案,他是唯一被录用的,所以楼主应该是凉了。关于函数没有self参数的问题我考虑过只能是lua5.1的setfenv才能达到这个效果。
2019年06月21日 08点06分
@诛亻仙 是的,设置环境表可以做到,我一直以为你的题目写的有问题,而且一般通用的class定义不会设置环境表。
2019年06月21日 10点06分
@bd_mayajie 不是我的题目啊,[笑眼]
2019年06月21日 11点06分
1