自定义脚本语言引擎开发纪实 - 类的嵌套
程序员文章站
2022-04-10 15:39:17
...
类的实现内部,可以再包含类的定义,称之为嵌套类
备注:访问嵌套类的全局变量,需要嵌套类的全路径,见下面的例子。
class animal
func __init__(self, type)
self.type = type
end
func __del__(self)
end
class bird
func __init__(self, name, age)
self.name = name
self.age = age
end
func __del__(self)
end
class bigbird
sum = 0
func __init__(self, big)
self.big = big
animal.bird.bigbird.sum = animal.bird.bigbird.sum + 1
//下面的调用方式错误,无法找到这个类,哪怕是在类的函数的内部,需要用上面的方式,用类的完整路径
//bigbird.sum = bigbird.sum + 1
end
func __del__(self)
animal.bird.bigbird.sum = animal.bird.bigbird.sum - 1
end
endclass
endclass
endclass
测试
_animal = animal("鸟类")
_bird = _animal.bird("天鹅", 5)
_bigbird = _bird.bigbird(123)
_bigbird2 = animal.bird.bigbird(456)
js.debug.log("log 共" + animal.bird.bigbird.sum + "只鸟" + "\t 第一只鸟多大?" + _bigbird.big + "\t 第二只鸟多大?" + _bigbird2.big)
运行结果:
[26376] log 共2只鸟 第一只鸟多大?123 第二只鸟多大?456