Ответ 1
a
, как b
в этом примере, является переменной типа. Он может быть создан с любым типом (тогда как b
может быть создан любым типом, который удовлетворяет ограничению, что он также является экземпляром Num
).
Пример scala работает совсем по-другому, поскольку система типа scala отличается от другой; Нет реальной концепции значения, когда-либо имеющего не полностью созданный тип, поэтому вам нужно назначить тип Left
возможности вашего значения Either
. Если учесть дополнительные ограничения, это заканчивается Nothing
. В связи с тем, как работает система типа scala (Nothing
является подтипом любого другого типа, поэтому вы можете рассматривать ее как двойную по отношению к типу Any
), а Either[Nothing,B]
также является Either[A,B]
для любого a
.