Возможно ли создать собственные числовые типы, которые можно сравнить со встроенными scala числовыми типами и, возможно, использоваться в смешанной арифметике? Например, если предположитьСмешанная арифметика между настраиваемыми типами и встроенными номерами scala - возможно ли это?
class UnsignedInt(private val bits :Int) extends AnyVal {
...
}
Могу ли я сделать его равным Int
с? Хотя я могу определить def ==(that :Int)
(который я думаю, не должно быть возможно), я не могу найти в любом случае, чтобы заставить преобразование так, что
val (s, u) = 1 -> new UnsignedInt(1)
s == u
дает истинное после вызова моего пользовательского сравнения вместо того, чтобы компилятор дает перед даже он работает. Я знаю о дэнгарах смешанной арифметики в целом, но поскольку такое сравнение не приводит к ошибкам компиляции и часто будет интуитивно написано, я хотел бы, по крайней мере, иметь возможность продвигать оба операнда к типу, который можно безопасно вводить in