smalltalk で + 演算子をオーバーライドして 2 つのパラメーターを受け入れることは可能ですか? つまり、カスタム クラスの単位も渡す必要があります。何かのようなもの:
Number subclass: #NumberWithUnits
instanceVariableNames: 'myName unitTracker'
classVariableNames: ''
poolDictionaries: ''
category: 'hw3'
+ aNumber theUnits
unitTracker adjustUnits: theUnits.
^super + aNumber
または、私が考慮していないこれを行う簡単な方法はありますか?
追加の問題の説明:
(NumberWithUnits 値: 3 単位: #seconds)は、 3 秒を表すNumberWithUnitsを提供する必要があります。しかし、3 秒を書き込むこともでき、これは NumberWithUnits に評価されるはずです (秒はPharo 2.0 で既に取得されています)。これを行う方法は、基本的に(NumberWithUnits value: self unit: #seconds)を返す sec メソッドを Number に追加することです。メートルと象のメソッドも追加できます。次に、式3 象 / (1 秒 秒)を書くと、正しいものが返されます。それを確かめるためにテストを書いてください!