Ни один из них не несет большого семантического значения в следующем смысле:
- , если у нас есть значение типа
Any
, мы на самом деле не знаем, какое это значение, если мы не приведем его во время выполнения - если у нас есть значение
Unit
, мы знаем, что побочный эффект был выполнен, но мы не очень много знаем о том, какого рода побочный эффект это было.
В идеалеМы хотим максимально сузить смысл программы, поэтому мы стараемся минимизировать использование Any
и Unit
, в то же время максимизируя использование семантически более богатых типов.
В качестве дополнительного примечания Any
является корнем иерархии классов Scala, что означает, что даже Unit
является подтипом Any
, например, допустимо следующее: val a: Any = ()
.