Сравнение языков программирования (строки) - Википедия - Comparison of programming languages (strings)

Этот сравнение языков программирования (строки) сравнивает особенности нить структуры данных или же текстовая строка обработка для более 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
nconcCommon 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 '' по-прежнему обрабатывает строковую интерполяцию.

Рекомендации

1. ^ https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/raw