【发布时间】:2010-11-23 23:43:06
【问题描述】:
我正在尝试在 IO 第 2 天完成《七日之七语言》一书中的第二个练习。在其中,您问:“如果分母为零,您将如何更改 / 以返回 0?”我已经确定可以使用以下方法向 Number 添加方法:
Number new_div := method(i, if(i != 0, self / i, 0))
我不确定如何替换运算符表中的“/”。我试过了:
Number / := Number new_div
Number / := self new_div
但是当它试图调用“/”时,我得到了一个例外。如何获得 Number / 的句柄,以便我可以存储对旧方法的引用,然后为我自己的目的重新定义它?我是不是搞错了?
【问题讨论】:
-
我正在尝试解决同样的问题。我做“数字/:=方法(...)”。我被 jer 指出的同一个无限循环困住了。我找不到保留 / 的原始实现并调用它的方法。
-
@Eric Hogue:我没有发布我的答案,因为 jer 击败了我!我现在发布它是因为它确实展示了如何保留原始除法并避免递归循环。
标签: operators iolanguage