Сравнение языков программирования (строки) - Википедия - Comparison of programming languages (strings)
Эта статья не цитировать любой источники.Февраль 2009 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Этот сравнение языков программирования (строки) сравнивает особенности нить структуры данных или же текстовая строка обработка для более 52 различных компьютеров языки программирования.
Конкатенация
В разных языках для оператора конкатенации используются разные символы. Во многих языках используется символ «+», хотя в некоторых он отличается.
Общие варианты
Оператор | Языки |
---|---|
+ | АЛГОЛ 68, БАЗОВЫЙ, C ++, C #, Кобра, Паскаль, Object Pascal, Эйфель, Идти, JavaScript, Ява, Python, Тьюринг, Рубин, Ржавчина, Windows PowerShell, Цель-C, Быстрый, F #, Scala, Я |
++ | Haskell, Erlang |
$+ | Язык сценариев mIRC |
& | Ада, AppleScript, КОБОЛ (только для литералов), Завиток, Семя7, VHDL, Visual Basic, Visual Basic .NET, Excel, FreeBASIC |
nconc | Common Lisp |
. | Perl, PHP, и Клен (до версии 5), Autohotkey |
~ | Раку и D |
|| | Значок, Стандарт SQL, PL / I, Rexx, и Клен (с версии 6) |
<> | Mathematica, Язык Wolfram Language |
.. | Lua |
: | Выбрать базовый |
, | Язык программирования J, Болтовня, APL |
^ | OCaml, Стандартный ML, F #, rc |
// | Фортран |
* | Юля |
Уникальные варианты
- Awk использует пустую строку: два выражения, смежных друг с другом, объединяются. Это называется сопоставление. Оболочки Unix имеют похожий синтаксис. Rexx использует этот синтаксис для конкатенации, включая промежуточный пробел.
- C (вместе с Python) позволяет сопоставление строковых литералов, однако для строк, хранящихся как персонаж массивы, то
strcat
функция должна использоваться. - КОБОЛ использует
НИТЬ
оператор для объединения строковых переменных. - MATLAB и Октава используйте синтаксис "
[x y]
"соединить x и y. - Visual Basic и Visual Basic .NET также можно использовать "
+
", но существует риск двусмысленности, если строка, представляющая число, и число находятся вместе. - Майкрософт Эксель позволяет оба "
&
"и функция"= СЦЕПИТЬ (X; Y)
". - Ржавчина имеет
concat!
макрос иформат!
макрос, из которых последний является наиболее распространенным в документации и примерах.
Строковые литералы
В этом разделе сравниваются стили для объявления строковый литерал.
Котировка с интерполяцией
Выражение «интерполируется» в строку, когда компилятор / интерпретатор оценивает его и вставляет результат на его место.
Синтаксис | Язык (и) |
---|---|
$ "привет, {имя}" | C #, Visual Basic .NET |
"Привет, $ name!" | Оболочка Борна, Perl, PHP, Windows PowerShell |
qq (Привет, $ name!) | Perl (альтернативный) |
"Привет, {$ name}!" | PHP (альтернативный) |
"Привет, # {name}!" | CoffeeScript, Рубин |
% Q (Привет, # {name}!) | Рубин (альтернативный) |
(формат t "Привет, ~ A" имя) | Common Lisp |
`Привет, $ {name}!` | JavaScript (ECMAScript 6) |
"Здравствуйте, (имя)!" | Быстрый |
f'Привет, {name}! ' | Python |
Экранированные цитаты
«Экранированные» кавычки означают, что символ «флаг» используется для предупреждения о том, что символ после флага используется в строке, а не в конце строки.
Синтаксис | Язык (и) |
---|---|
"Я сказал " Привет, мир! "" | C, C ++, C #, D, F #, Java, JavaScript, Mathematica, Ocaml, Perl, PHP, Python, Rust, Swift, язык Wolfram Language, Ya. |
'Я сказал ' Привет, мир! '' | CoffeeScript, JavaScript (альтернативный), Python (альтернативный) |
"Я сказал` "Привет, мир!" "" | Windows Powershell |
"Я сказал ^" Привет, мир! ^ "" | REBOL |
{Я сказал "Привет, мир!"} | REBOL (альтернативный) |
"Я сказал:%" Привет, мир!% "" | Эйфель |
! "Я сказал " Привет, мир! "" | FreeBASIC |
r # "Я сказал:" Привет, мир! "" # | Ржавчина (альтернатива) |
Двойное цитирование
«Двойные кавычки» означает, что всякий раз, когда кавычки используются в строке, они используются дважды, и одна из них отбрасывается, а затем в строке используется одинарная кавычка.
Синтаксис | Язык (и) |
---|---|
"Я сказал" "Привет, мир!" "" | Ада, АЛГОЛ 68, Excel, Фортран, Visual Basic (.NET), FreeBASIC, COBOL |
Я сказал: «Привет, мир!» | Фортран, rc, COBOL, SQL, Паскаль, Object Pascal, APL, Smalltalk |
Цитируется в сыром виде
"Необработанный" означает, что компилятор обрабатывает каждый символ внутри литерала точно так, как он написан, без обработки каких-либо экранирований или интерполяций.
Синтаксис | Язык (и) |
---|---|
'Привет, мир!' | APL, оболочка Bourne, Fortran, Object Pascal, Pascal, Perl, PHP, Pick Basic, Ruby, Windows PowerShell, Smalltalk |
q (Привет, мир!) | Perl (альтернативный) |
% q (Привет, мир!) | Рубин (альтернативный) |
R "(Привет, мир!)" | C ++ 11 |
@"Привет, мир!" | C #, F # |
r "Привет, мир!" | Кобра, D, Питон, Ржавчина |
"Привет, мир!" | Cobol, FreeBASIC, Pick Basic |
`Привет, мир!` | D, иди |
raw "Привет, мир!" | Scala |
String.raw`Hello, World! ` | JavaScript (ECMAScript 6) [1] |
Многострочная строка
Многие языки имеют синтаксис, специально предназначенный для многострочных строк. В некоторых из этих языков этот синтаксис является здесь документ или «heredoc»: токен, представляющий строку, помещается в середину строки кода, но код продолжается после начального токена, и содержимое строки не отображается до следующей строки. В других языках содержимое строки начинается сразу после начального токена, а код продолжается после терминатора строкового литерала.
Синтаксис | Здесь документ | Язык (и) |
---|---|---|
<< EOFI есть что сказать и так мало времени, чтобы сказать это. | да | Оболочка Борна, Perl, PHP, Ruby |
<<< EOFI есть что сказать и так мало времени, чтобы сказать это | да | PHP |
@ "Мне есть что сказать и так мало времени, чтобы сказать это" @ | Нет | Windows Powershell |
«[Мне есть что сказать и так мало времени, чтобы сказать это]» | Нет | Эйфель |
"" "Мне есть что сказать и так мало времени, чтобы сказать это" "" | Нет | CoffeeScript, Python, Groovy, Swift, Котлин |
"Мне есть что сказать, и так мало времени, чтобы сказать это" | Нет | Visual Basic .NET (все строки многострочные), Rust (все строки многострочные) |
r "Мне есть что сказать, и так мало времени, чтобы сказать это" | Нет | Ржавчина |
[[Мне есть что сказать и так мало времени]] | Нет | Lua |
`Мне есть что сказать и так мало времени, чтобы сказать это` | Нет | JavaScript (ECMAScript 6) |
Уникальные варианты цитирования
Синтаксис | Название варианта | Язык (и) |
---|---|---|
13Привет, мир! | Нотация Холлерита | Фортран 66 |
(с отступом пробелом) | С отступом от пробелов и новой строки | YAML |
Примечания
- 1. ^
String.raw ''
по-прежнему обрабатывает строковую интерполяцию.