2時間から5分を引く方法を考えようとしています。
2から5を引くのは意味がありません。これは、一般的な時間単位が-3になり、役に立たないためです。ただし、「時間」が「分」のサブタイプである場合、2時間を120分に変換すると、115分、つまり1時間55分になります。
同様に、5個のリンゴを5個のオレンジに追加したい場合、これをリンゴの観点から評価することはできませんが、最終的に10個の果物になると予想される可能性があります。
上記の例のように、一般に形容詞として数値を使用する場合、整数は、それらが記述するオブジェクトのタイプによってパラメーター化する必要があります。宣言する代わりに、とても便利だと思います
val hours = 2
val minutes = 5
あなたは次のようなことをすることができます
val hours = 2[Hour]
val minutes = 5[Minute]
val result = hours - minutes
assert (result == 115[Minute])
このようなものは存在しますか、それは有用でしょうか、そしてそれは実装できるものですか?
編集:明確にするために、上記の時間の例は私が考えたランダムな例にすぎません。私の質問は、リストなどをパラメータ化したのと同じように、一般にパラメータ化された数値の概念が有用な概念であるかどうかです(答えは「いいえ」かもしれません、わかりません!)