См. Раздел «6.26.1 Преобразование значений» в Спецификации языка Scala версия 2.8:
...
Отказ от значения . Если e
имеет некоторый тип значения, а ожидаемый тип - Unit, e
преобразуется
к ожидаемому типу, вложив его в член {e; ()}
.
...
Ну, все что угодно можно преобразовать в единицы (что и является его целью). Вы можете рассматривать Единицу как единицу в решетке (под) типов, что означает, что это супертип всего. См. статью в Википедии .
Все, что угодно можно преобразовать в единицы измерения. Это в основном необходимо для поддержки методов побочного действия, которые, тем не менее, возвращают значения, но где возвращаемое значение часто игнорируется. Например,
import java.util.{List =>JList}
def remove2[A](foo: JList[A], a1:A, a2:A):Unit = {
foo.remove(a1)
foo.remove(a2) //if you couldn't convert the (usually pointless) return value of remove to Unit, this wouldn't type
}