Project1
标题:
用alias扩充方法之后遇到的奇怪错误
[打印本页]
作者:
451483807
时间:
2018-12-12 01:04
标题:
用alias扩充方法之后遇到的奇怪错误
初学RGSS,偶然遇到了一个无限递归的错误。
感觉按照正常逻辑来看是根本不会发生递归的,希望大佬们能够帮我解惑。
简化出来的代码如下:
class A_Test
def test
print('A')
end
end
class B_Test < A_Test
def test
print('B')
super
end
end
class A_Test
alias base_test test
def test
print('newA')
base_test
end
end
class B_Test
alias base_test test
def test
print('newB')
base_test
end
end
b = B_Test.new
b.test
复制代码
作者:
晴兰
时间:
2018-12-12 02:39
提示:
作者被禁止或删除 内容自动屏蔽
作者:
451483807
时间:
2018-12-12 21:56
晴兰 发表于 2018-12-12 02:39
简单说 A的test方法里面的base_test那句调用的是对象上的base_test
如果你用b去调用,那么实际上是通过B的t ...
明白了,那么是否有方法去避免调用到B的base_test呢
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1