Чувствительность к регистру


В компьютерах чувствительность к регистру определяет, будут ли прописные и строчные буквы рассматриваться как разные ( с учетом регистра ) или как эквивалентные ( без учета регистра ). Например, когда пользователи, заинтересованные в изучении собак, ищут электронную книгу , слова «собака» и «собака» имеют для них одинаковое значение. Таким образом, они запрашивают поиск без учета регистра. Но когда они ищут в онлайн-энциклопедии информацию об Организации Объединенных Наций , например, или что-то, где нет двусмысленности в отношении использования заглавных букв и двусмысленности между двумя или более терминами, сокращенными заглавными буквами, они могут предпочесть поиск с учетом регистра.

Некоторые языки программирования чувствительны к регистру для своих идентификаторов ( C , C++ , Java , C# , Verilog , [2] Ruby , [3] Python и Swift ). Другие нечувствительны к регистру (т. е. не чувствительны к регистру), такие как ABAP , Ada , большинство BASIC (за исключением BBC BASIC ), Fortran , Ring [4] , SQL (для синтаксиса и для некоторых реализаций поставщиков, например Microsoft SQL Server , сами данные)[NB 2] и Паскаль . Существуют также языки, такие как Haskell , Prolog и Go , в которых использование заглавных букв в идентификаторе кодирует информацию о его семантике . Некоторые другие языки программирования имеют различную чувствительность к регистру; в PHP , например, имена переменных чувствительны к регистру, но имена функций не чувствительны к регистру. Это означает, что если вы определяете функцию в нижнем регистре, вы можете вызывать ее в верхнем регистре, но если вы определяете переменную в нижнем регистре, вы не можете ссылаться на нее в верхнем регистре. Nim нечувствителен к регистру и игнорирует символы подчеркивания, пока совпадают первые символы. [5]

Операция текстового поиска может быть чувствительной к регистру или нечувствительной к регистру, в зависимости от системы, приложения или контекста. Во многих случаях пользователь может указать, учитывается ли регистр при поиске, например, в большинстве текстовых редакторов, текстовых процессоров и веб-браузеров. Поиск без учета регистра является более полным, находя «Язык» (в начале предложения), «язык» и «ЯЗЫК» (в названии заглавными буквами); поиск с учетом регистра найдет компьютерный язык «BASIC», но исключит большинство нежелательных экземпляров слова. Например, поисковая система Google в основном нечувствительна к регистру и не имеет опции для поиска с учетом регистра. [6] В Oracle SQL большинство операций и поисковых запросов по умолчанию чувствительны к регистру, [7]в то время как в большинстве других СУБД поиск SQL по умолчанию нечувствителен к регистру. [8]

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

В файловых системах Unix-подобных систем имена файлов обычно чувствительны к регистру (в одном каталоге могут быть отдельные файлы readme.txt и Readme.txt). MacOS несколько необычна тем, что по умолчанию использует HFS+ и APFS в режиме без учета регистра (поэтому файлы readme.txt и Readme.txt не могут находиться в одном каталоге), но с сохранением регистра (чтобы файл файл, созданный как readme.txt, отображается как readme.txt, а файл, созданный как Readme.txt, отображается как Readme.txt) по умолчанию. Это вызывает некоторые проблемы у разработчиков и опытных пользователей., потому что большинство файловых систем в других Unix-подобных средах чувствительны к регистру, и, например, дерево исходного кода программного обеспечения для Unix-подобных систем может иметь как файл с именем Makefile, так и файл с именем makefile в одном и том же каталоге. Кроме того, некоторые установщики Mac предполагают нечувствительность к регистру и терпят неудачу в файловых системах, чувствительных к регистру.