Рассмотрим этот код:
val x1: Byte = 0x00
val x2: Byte = 0x01
val x3: Byte = x1 + x2;
Это дает ошибку компиляции, потому что результатом добавления 2 Byte
s является Int
.
Чтобы обойти это, мне нужно вручную привести результат обратно в байт:
val x3: Byte = (x1 + x2).toByte()
Это очень нелогично.Почему арифметические операторы работают так?