Mar*_*k B 31 operators iolanguage
我正试图在七天七语中的第二天完成第二次练习.在你的问题中,"如果分母为零,你会如何改变/返回0?"我已经确定我可以使用以下方法向Number添加方法:
Number new_div := method(i, if(i != 0, self / i, 0))
Run Code Online (Sandbox Code Playgroud)
我不确定如何替换运算符表中的"/".我试过了:
Number / := Number new_div
Number / := self new_div
Run Code Online (Sandbox Code Playgroud)
但是当我试图调用"/"时,我得到两个例外.如何处理Number /所以我可以存储对旧方法的引用,然后为自己的目的重新定义它?我错了吗?
dra*_*tun 39
对于Eric Hogue(参见问题评论):
origDiv := Number getSlot("/")
10 origDiv(5) println # => 2
10 origDiv(0) println # => inf
Number / := method (i,
if (i != 0, self origDiv(i), 0)
)
(10 / 5) println # => 2
(10 / 0) println # => 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1729 次 |
| 最近记录: |