Мне интересно, можно ли было if… else
реализовать в Predef
с специальная обработка компилятора, аналогичная тому, что делается с classOf [A]
: определение находится в Predef
, реализация заполняется компиляцией r.
Конечно, многих людей обнадеживает то, что if
всегда является if
, а else
всегда является else
, вне зависимости от контекста. Однако определение else
как метода для типа результата if
удалит его из списка ключевых слов и позволит разработчикам библиотек определять свои собственные методы else
. (Я знаю, что могу использовать любое ключевое слово в качестве идентификатора с обратными кавычками, но что-то вроде `else`
просто ужасно выглядит в коде.) Такие методы могут быть полезны в обсуждаемых случаях в таких ситуациях, как как этот, обсуждаемый в списке рассылки , где люди вынуждены использовать иначе
при определении методов, которые на самом деле должны называться else
. (Также обсуждается на SO здесь и здесь .)
Итак: