Pull to refresh

Comments 8

Интересно наблюдать за развитием языка. Часть из объявленного позволит намного меньше потеть и материться при долгой разработке.
Существуют примерные сроки когда стоит ожидать полный выпуск Haxe 4.0?
А почему было просто не убрать обязательный return и возвращать значение последнего выражения? Выглядит не хуже стрелочных функций и чуть более гибко.
Типизация статическая, Void-функции нужны. Вероятно, дело в этом.
Это определяется типом функции. Любой тип может быть преобразован к Void.
Под «типом функкции» понимается возвращаемый тип? В haxe активно используется выведение типов, поэтому возвращаемый тип часто не указывается. В этом случае, тип как раз выводится из выражения в return, либо на основе первого вызова. Если бы тип любой функции без return приводился на основе первого вызова, то компиляция бы ломалась добавлением вызова функции без сохранения результата в начало программы. Если бы всегда на основе последнего выражения, то это очень странно бы выглядело на статических таргетах. В конечном итоге, от выведения возвращаемого типа пришлось бы отказаться вообще. Мне кажется, оно того не стоит.
Явное указание типа — хорошая документация. Да и большенство часто используемых типов короче слова return и писать их приходится всего один раз на определение функции.
В Rust и Scala примерно так и сделано, на мой взгляд очень удобно.
Согласиться безоговорочно я могу только с первым утверждением: документация – полезно.
Но многие используют lang server, так что в редаткторе видно выведенный тип, даже если он не указан.
А как можно сократить использование досрочных return? Если что, в haxe тоже everything is an expression, и всегда можно обойтись одним.
В общем, ответ на начальный вопрос можно перефразировать в «потому что оно плохо согласуется с системой выведения типов».
Одна фича против другой, есть выбор и он сделан.
Sign up to leave a comment.

Articles