Есть ли какое-либо преимущество в том, чтобы быть языком программирования, чувствительным к регистру?[дубликат]

StackOverflow https://stackoverflow.com/questions/521349

Вопрос

Лично мне не нравится, когда языки программирования чувствительны к регистру.

(Я знаю, что недостатки чувствительности к регистру в настоящее время дополняются хорошими IDE)

Тем не менее, я хотел бы знать, есть ли какие-либо преимущества у языка программирования, если он чувствителен к регистру.Есть ли какая-то причина, по которой разработчики многих популярных языков решили сделать их чувствительными к регистру?

Редактировать:дубликат Почему многие языки чувствительны к регистру?

Редактировать:(Я не могу поверить, что задал этот вопрос несколько лет назад)

Это было полезно?

Решение

Это предпочтение.Я предпочитаю учитывать регистр, так мне легче читать код.Например, имя переменной "myVariable" имеет форму слова, отличную от "myVariable", "MYVARIABLE" и "myvariable". Это позволяет с первого взгляда более просто отличить два идентификатора друг от друга.Конечно, вы не должны или очень редко создайте идентификаторы, которые отличаются только регистром.Это больше касается согласованности, чем очевидной "выгоды" от увеличения числа возможных идентификаторов.Некоторые люди считают это недостатком.Я не могу припомнить ни одного случая, когда чувствительность к регистру вызывала у меня какие-либо проблемы.Но опять же, это предпочтение.

Другие советы

Чувствительность к регистру по своей сути быстрее разбирается (хотя и незначительно), поскольку она может напрямую сравнивать последовательности символов без необходимости выяснять, какие символы эквивалентны друг другу.

Это позволяет разработчику класса / библиотеки контролировать, как оболочка используется в коде.Падеж также может быть использован для передачи значения.

Код выглядит примерно так же.Во времена BASIC они были эквивалентны:

PRINT MYVAR
Print MyVar
print myvar

При проверке типов чувствительность к регистру предотвращает появление орфографических ошибок и нераспознанных переменных.Я исправил ошибки в коде на нечувствительном к регистру нетипизированном языке (FORTRAN77), где ноль (0) и заглавная буква O выглядели одинаково в редакторе.Язык создал новый объект, и поэтому результат был ошибочным.С чувствительным к регистру типизированным языком этого бы не произошло.

В компиляторе или интерпретаторе язык, не чувствительный к регистру, должен будет сделать все заглавным или строчным для проверки совпадений или иным образом использовать инструмент сопоставления без учета регистра, но это лишь небольшой объем дополнительной работы для компилятора.

Кроме того, код, чувствительный к регистру, допускает определенные шаблоны объявлений, такие как

Имя класса MyClassName = новое имя класса MyClassName()

и другие ситуации, когда чувствительность к регистру приятна.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top