是否可以覆盖 smalltalk 中的 + 运算符以接受两个参数?即,我还需要为我的自定义类传递单位。就像是:
Number subclass: #NumberWithUnits
instanceVariableNames: 'myName unitTracker'
classVariableNames: ''
poolDictionaries: ''
category: 'hw3'
+ aNumber theUnits
unitTracker adjustUnits: theUnits.
^super + aNumber
或者有没有我没有考虑过的更简单的方法来做到这一点?
附加问题描述:
(NumberWithUnits 值:3 单位:#seconds)应该给你一个代表 3 秒的NumberWithUnits。但是你也应该能够写 3 sec 并且应该评估为NumberWithUnits(Pharo 2.0 中已经采用了秒数)。这样做的方法是向 Number 添加一个 sec 方法,该方法基本上返回(NumberWithUnits value: self unit: #seconds)。您也可以为米和大象添加方法。然后你可以写一个表达式3大象/(1秒秒)它会返回正确的东西。写一个测试来确定!