Ничто не является подтипом всего, так что в определенном смысле это противоположность Любого, который является супертипом всего.Ничто не может быть создано, вы никогда не будете держать объект Ничто.Есть две ситуации (я знаю), где Ничто на самом деле не полезно:
- Функция, которая никогда не возвращается (в отличие от функции, которая не возвращает никакого полезного значения, котороевместо этого будет использовать Unit), что происходит для бесконечных циклов, бесконечной блокировки, создания исключений или выхода из приложения
- В качестве способа указания типа пустых контейнеров, например, Nil или None.В Java не может быть одного объекта Nil для универсальных неизменяемых списков без приведения или других хитростей: если вы хотите создать список дат, даже пустой элемент должен иметь правильный тип, который должен быть подтипомДата.Поскольку Date и, например, Integer не имеют общего подтипа в Java, вы не можете создать такой экземпляр Nil без хитростей, несмотря на тот факт, что ваш Nil даже не содержит никакого значения.Теперь Scala имеет этот общий подтип для всех объектов, поэтому вы можете определить Nil как
object Nil extends List[Nothing]
и использовать его для запуска любого списка, который вам нравится.
На ваш второй вопрос: Да, это будетбыть полезным.Я предполагаю, что уже есть переключатель компилятора для включения этих предупреждений, но я не уверен.