Какие языки не имеют Глобального Вара?

Из-за волны критики для использования Глобального Вара в моем сообщении Java я хочу использовать язык без глобального Вара. Одно предложение на ответ, спасибо.

5
задан 3 revs, 2 users 60% 23 May 2017 в 12:26
поделиться

6 ответов

Если вам не нужны глобальные переменные, тогда не используйте их. Я не понимаю, почему поиск языка, который их не поддерживает, может принести какую-то пользу. Вы имеете дело с вопросом области видимости. Сделайте так, чтобы ваши переменные существовали в минимально возможной области видимости, и все будет в порядке. Не существует языка, который не имел бы глобальной области видимости.

3
ответ дан 13 December 2019 в 22:04
поделиться

Ну, я читал, что Graal - это функциональный язык программирования без переменных, так что я думаю, что это можно сделать.

0
ответ дан 13 December 2019 в 22:04
поделиться

Я считаю, что Эйфель не использует глобальные переменные, но это не является серьезным критерием
использовать язык или нет.

0
ответ дан 13 December 2019 в 22:04
поделиться

Если вы хотите избежать побочных эффектов, вы можете использовать один из чистых функциональных языков программирования, таких как haskell (или erlang или ...), в которых есть только константы. Но будьте готовы к совершенно другому виду программирования по сравнению с императивным стилем программирования.

3
ответ дан 13 December 2019 в 22:04
поделиться

Я не уверен, что вы буквально имеете в виду отсутствие глобальных переменных (значения, которые меняются), или если вы также хотите исключить глобальные константы (значения, которые не меняются). Haskell - один из таких языков, в котором нет глобальных переменных, но есть глобальные константы (по сути, в форме функций без параметров). В Haskell, если вы хотите имитировать глобальное состояние, вы должны передать свои «глобальные» переменные в каждую вызываемую функцию. Лучшее описание доступно на HaskellWiki .

3
ответ дан 13 December 2019 в 22:04
поделиться

В Java (и подобных ООП-языках) нет действительно глобальных переменных, все переменные привязаны к экземпляру или классу. Но я думаю, что вы также хотите отменить "симулированные" глобальные переменные (публичные поля, доступ к которым возможен только извне). Я не думаю, что какой-либо из популярных языков не позволяет этого, но более необычные языковые концепции могут иметь способы избежать таких вещей.

1
ответ дан 13 December 2019 в 22:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: