Re[5]: Константы. Класс или структура?
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.06.24 11:19
Оценка: -2
Здравствуйте, _FRED_, Вы писали:

_FR>Константа по сути это статическое ридонли поле.


Полнейшая чушь. Константа — это именованное значение. Для него поля не нужны.

_FR>По идее на уровне пространства имён можно было бы разрешить объявлять поля (и константные и даже нет — а что, просто глобальная переменная), и методы и всё что угодно (ну странно разрешать просто методы и толшько константы и не позволять не-константные поля типа decimal или там DateTime, object, etc).


Дальнейшие рассуждения просто бессмысленны. Да и кому интересны рассудения в стиле "По идее можно было бы разрешить..."? Можно все что не противоречит логике.

_FR>// Например какой-либо дот.нет ориентированный язык мог бы это даже поддержать на своём уровне, под капотом просто оборачивая это всё в некий скрытый от пользователя "статический класс"


Эмуляция эмуляции.

_FR>Мне кажется, это усложнило бы спеку рантайма/метаданных, сценарии перегрузки и разрешения имён (одна и так из самых не простых тем), пришлось бы задать правила инициализации таких полей (может и конструктор неймспейсу понадобился бы?), рефлекшен, какие-то ещё сценарии.


Ага. Спека CLR — это огромная книга. В ней добавилось бы полстраницы.

_FR>Скорее всего привело бы к рекомендациям объвлять подобные методы в своём под-пространстве имён (как сейчас их объявляют просто в классе):


Логично и что?

_FR>чтобы пользователь ненароком не подключил бы что-то, что вызовет конфликты с другими определениями. А может и того хуже — не конфликты, а втихую перегрузка отработает не ожиданным для пользователя виде.


Вызовет конфликт, получит ошибку времени компиляции как и с любым другим именем. У констант вообще проблем нет. Они на стадии компиляции превращаются в значения.

_FR>Если народ начнёт валом добавлять полезности в System, который ну в очень большщом числе файлов юзается, конфликты неизбежны. Это будет проблемой и для пользователя и для разработчиков языков, которым нужно будет искать какие-то пути уменьшения проблем от этого.


Хватит фантазировать. Никаких оправданий этому решению нет. Просто сделали как захотели.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.