Пустая строка
Эта статья нуждается в дополнительных цитатах для проверки . ( ноябрь 2009 г. ) |
В теории формального языка пустая строка или пустое слово — это уникальная строка нулевой длины.
Формальная теория
[ редактировать ]Формально строка представляет собой конечную упорядоченную последовательность символов, таких как буквы, цифры или пробелы. Пустая строка — это особый случай, когда последовательность имеет нулевую длину, поэтому в строке нет символов.Пустая строка только одна, поскольку две строки отличаются только в том случае, если они имеют разную длину или разную последовательность символов.В формальном лечении [1] пустая строка обозначается ε или иногда Λ или λ .
Пустую строку не следует путать с пустым языком ∅ , который является формальным языком (то есть набором строк), который не содержит ни строк, ни даже пустой строки.
Пустая строка имеет несколько свойств:
- |ε| = 0. Длина его строки равна нулю.
- ε ⋅ s = s ⋅ ε = s. Пустая строка является идентификационным элементом операции конкатенации . Множество всех строк образует свободный моноид относительно ⋅ и ε.
- е Р = е. Обращение пустой строки дает пустую строку, поэтому пустая строка является палиндромом .
- . Утверждения, относящиеся ко всем символам строки, являются бессмысленной истиной .
- Пустая строка предшествует любой другой строке в лексикографическом порядке , поскольку она является самой короткой из всех строк. [2]
В контекстно-свободных грамматиках правило производства , которое позволяет символу создавать пустую строку, известно как ε-производство, а символ называется «обнуляемым».
Использование в языках программирования
[ редактировать ]В большинстве языков программирования строки являются типом данных . Строки обычно хранятся по разным памяти адресам (местам) . Таким образом, одна и та же строка (например, пустая строка) может храниться в двух или более местах памяти.
Таким образом, в памяти может быть несколько пустых строк, в отличие от определения формальной теории, для которого существует только одна возможная пустая строка. Однако функция сравнения строк укажет, что все эти пустые строки равны друг другу.
Даже для строки нулевой длины может потребоваться память для ее хранения, в зависимости от используемого формата. В большинстве языков программирования пустая строка отличается от нулевой ссылки (или нулевого указателя), поскольку нулевая ссылка вообще не указывает ни на какую строку, даже на пустую строку.Пустая строка является допустимой строкой, с которой должно работать большинство строковых операций. Некоторые языки обрабатывают некоторые или все следующие элементы одинаковым образом: пустые строки, нулевые ссылки, целое число 0, число с плавающей запятой 0, логическое значение false , ASCII символ NUL или другие подобные значения.
Пустая строка обычно представляется аналогично другим строкам. В реализациях с символом завершения строки ( строки с нулевым завершением или строки обычного текста) пустая строка обозначается немедленным использованием этого символа завершения.
На разных языках существуют различные функции, методы, макросы и идиомы для проверки того, пуста ли строка. [ нужен пример ]
λ-представление | Языки программирования |
---|---|
"" | C , C# , C++ , Go , Haskell , Java , JavaScript , Julia , Lua , M , Objective-C (как строка C), OCaml , Perl , PHP , Python , Ruby , Scala , Standard ML , Swift , Tcl , Visual Базовый .NET |
'' | APL , Delphi , JavaScript , Lua , MATLAB , Паскаль , Perl , PHP , Python , R , Ruby , Smalltalk , SQL |
character(0) | Р [3] |
{'\0'} | C , C++ , Objective-C (как строка C) |
std::string() | С++ |
""s | C++ (начиная со стандарта 2014 г. ) |
@"" | Objective-C (как константа NSString объект) |
[NSString string] | Objective-C (как новый NSString объект) |
q(), qq() | Перл |
str() | Питон |
%{} %() | Руби |
String::new() [4] | Ржавчина |
string.Empty | С# , Visual Basic, .NET. |
String.make 0 '-' | OCaml |
{} | Ткл |
[[]] | Два |
Примеры пустых строк
[ редактировать ]Этот раздел нуждается в расширении . Вы можете помочь, добавив к нему . ( март 2010 г. ) |
Пустая строка — это синтаксически допустимое представление нуля в позиционной записи (в любой системе счисления), не содержащее ведущих нулей . Поскольку пустая строка не имеет стандартного визуального представления за пределами теории формального языка, вместо этого число ноль традиционно представляется одной десятичной цифрой 0 .
Заполненная нулями область памяти, интерпретируемая как строка с нулевым завершением , представляет собой пустую строку.
Пустые строки текста показывают пустую строку. Это может произойти из двух последовательных EOL , как это часто происходит в текстовых файлах , и это иногда используется при обработке текста для разделения абзацев , например, в MediaWiki .
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Коркоран, Джон; Фрэнк, Уильям; Мэлони, Майкл (1974). «Теория струн». Журнал символической логики . 39 (4): 625–637. дои : 10.2307/2272846 . JSTOR 2272846 . S2CID 2168826 .
- ^ Конспекты лекций CSE1002 - Лексикографика
- ^ Есть два способа создания «пустых строк» в R; другой указан здесь как
""
.character(0)
создает пустые векторы символов, которые при подсчете выдают 0. - ^ «Строка в std::string — Rust» . doc.rust-lang.org . Проверено 30 ноября 2022 г.