Porovnání programovacích jazyků (řetězce) - Comparison of programming languages (strings) - Wikipedia
![]() | tento článek ne uvést žádný Zdroje.Únor 2009) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Tento srovnání programovacích jazyků (řetězce) porovnává vlastnosti tětiva datové struktury nebo textový řetězec zpracování pro více než 52 různých počítačů programovací jazyky.
Zřetězení
Různé jazyky používají pro operátora zřetězení různé symboly. Mnoho jazyků používá symbol „+“, ačkoli několik se od toho odchyluje.
Běžné varianty
Operátor | Jazyky |
---|---|
+ | ALGOL 68, ZÁKLADNÍ, C ++, C#, Kobra, Pascal, Objekt Pascal, Eiffelova, Jít, JavaScript, Jáva, Krajta, Turing, Rubín, Rez, Windows PowerShell, Cíl-C, Rychlý, F#, Scala, Ya |
++ | Haskell, Erlang |
$+ | Skriptovací jazyk mIRC |
& | Ada, AppleScript, COBOL (pouze pro literály), Kučera, 7. semeno, VHDL, Visual Basic, Visual Basic .NET, Vynikat, FreeBASIC |
nconc | Společný Lisp |
. | Perl, PHP, a Javor (do verze 5), Autohotkey |
~ | Raku a D |
|| | Ikona, Standard SQL, PL / I., Rexx, a Javor (od verze 6) |
<> | Mathematica, Wolfram jazyk |
.. | Lua |
: | Vyberte základní |
, | J programovací jazyk, Pokec, APL |
^ | OCaml, Standardní ML, F#, rc |
// | Fortran |
* | Julie |
Unikátní varianty
- Páni používá prázdný řetězec: dva výrazy sousedící s sebou jsou zřetězeny. Tomu se říká juxtapozice. Unix skořápky mít podobnou syntaxi. Rexx používá tuto syntaxi pro zřetězení včetně mezery mezi nimi.
- C (spolu s Pythonem) umožňuje juxtapozici pro řetězcové literály, avšak pro řetězce uložené jako charakter pole,
strcat
musí být použita funkce. - COBOL používá
TĚTIVA
příkaz ke zřetězení řetězcových proměnných. - MATLAB a Oktáva použijte syntaxi "
[x y]
"zřetězit x a y. - Visual Basic a Visual Basic .NET můžete také použít „
+
"podepsat, ale s rizikem nejednoznačnosti, pokud jsou řetězec představující číslo a číslo spolu. - Microsoft Excel umožňuje obojí “
&
„a funkce“= CONCATENATE (X, Y)
". - Rez má
concat!
makro aformát!
makro, z nichž druhý je v dokumentaci a příkladech nejrozšířenější.
Řetězcové literály
Tato část porovnává styly pro deklaraci a řetězec doslovný.
Citováno interpolováno
Výraz je „interpolován“ do řetězce, když jej překladač / tlumočník vyhodnotí a vloží výsledek na své místo.
Syntax | Jazyk (y) |
---|---|
$ "ahoj, {name}" | C #, Visual Basic .NET |
„Ahoj, $ jméno!“ | Bourneova skořápka, Perl, PHP, Windows PowerShell |
qq (Dobrý den, $ name!) | Perl (alternativní) |
„Dobrý den, {$ name}!“ | PHP (alternativní) |
„Dobrý den, # {name}!“ | CoffeeScript, Ruby |
% Q (Dobrý den, # {name}!) | Ruby (alternativní) |
(formát t "Dobrý den, ~ A" jméno) | Společný Lisp |
„Dobrý den, $ {name}!` | JavaScript (ECMAScript 6) |
„Dobrý den, (jméno)!“ | Rychlý |
f'Ahoj, {name}! ' | Krajta |
Uniklé uvozovky
„Unikající“ uvozovky znamenají, že se symbol „vlajky“ používá k varování, že znak za příznakem je použit v řetězci namísto ukončení řetězce.
Syntax | Jazyk (y) |
---|---|
„Řekl jsem„ Ahoj, světe! “„ | C, C ++, C #, D, F #, Java, JavaScript, Mathematica, Ocaml, Perl, PHP, Python, Rust, Swift, jazyk Wolfram, Ya |
'Řekl jsem ' Ahoj, svět! '' | CoffeeScript, JavaScript (alternativní), Python (alternativní) |
„Řekl jsem„ „Ahoj, svět!“ ““ | Windows Powershell |
„Řekl jsem ^„ Ahoj, svět! ^ ““ | REBOL |
{Řekl jsem „Ahoj, svět!“} | REBOL (alternativní) |
„Řekl jsem,%„ Dobrý den, svět!% ““ | Eiffelova |
! "Řekl jsem " Ahoj, svět! "" | FreeBASIC |
r # "Řekl jsem„ Ahoj, svět! "" # | Rez (alternativní) |
Duální citace
„Duální citace“ znamená, že kdykoli se v řetězci použije nabídka, použije se dvakrát a jedna z nich se zahodí a v řetězci se poté použije jednoduchá nabídka.
Syntax | Jazyk (y) |
---|---|
„Řekl jsem“ „Ahoj, svět!“ „“ | Ada, ALGOL 68, Excel, Fortran, Visual Basic (.NET), FreeBASIC, COBOL |
'Řekl jsem' 'Ahoj, svět!' '' | Fortran, rc, COBOL, SQL, Pascal, Object Pascal, APL, Smalltalk |
Citováno surové
„Surový“ znamená, že kompilátor zachází s každým znakem v literálu přesně tak, jak je napsán, aniž by zpracovával jakékoli úniky nebo interpolace.
Syntax | Jazyk (y) |
---|---|
'Ahoj světe!' | APL, Bourne shell, Fortran, Object Pascal, Pascal, Perl, PHP, Pick Basic, Ruby, Windows PowerShell, Smalltalk |
q (Dobrý den, svět!) | Perl (alternativní) |
% q (Dobrý den, svět!) | Ruby (alternativní) |
R "(Dobrý den, svět!)" | C ++ 11 |
@"Ahoj světe!" | C #, F # |
r „Ahoj, světe!“ | Cobra, D, Python, Rust |
"Ahoj světe!" | Cobol, FreeBASIC, Pick Basic |
„Ahoj, světe!“ | D, jdi |
syrový "Ahoj, svět!" | Scala |
String.raw` Ahoj, svět! ` | JavaScript (ECMAScript 6) [1] |
Víceřádkový řetězec
Mnoho jazyků má syntaxi speciálně určenou pro řetězce s více řádky. V některých z těchto jazyků je tato syntaxe a zde dokument nebo „heredoc“: Token představující řetězec je vložen do středu řádku kódu, ale kód pokračuje po počátečním tokenu a obsah řetězce se neobjeví až do dalšího řádku. V jiných jazycích začíná obsah řetězce okamžitě po počátečním tokenu a kód pokračuje po terminátoru řetězcového literálu.
Syntax | Zde dokument | Jazyk (y) |
---|---|---|
<< EOFI má spoustu věcí na řeč a tak málo času na to, aby jí řekla | Ano | Bourne shell, Perl, PHP, Ruby |
<<< EOFI má spoustu věcí na řeč a tak málo času na to, aby jí řekla | Ano | PHP |
@ „Mám spoustu věcí, které musím říct, a tak málo času jim říct“ @ | Ne | Windows Powershell |
„[Musím říct hodně věcí a tak málo času jim říct]]“ | Ne | Eiffelova |
"" "Mám spoustu věcí, které musím říct, a tak málo času na to, abych je řekl" "" | Ne | CoffeeScript, Python, Groovy, Swift, Kotlin |
„Mám spoustu věcí, které musím říct, a tak málo času jim říct“ | Ne | Visual Basic .NET (všechny řetězce jsou víceřádkové), Rust (všechny řetězce jsou víceřádkové) |
r „Mám spoustu věcí, které musím říct, a tak málo času jim říct“ | Ne | Rez |
[[Mám spoustu věcí, které musím říct, a tak málo času je říct]] | Ne | Lua |
"Mám spoustu věcí, které musím říct, a tak málo času je říct." | Ne | JavaScript (ECMAScript 6) |
Unikátní varianty nabídek
Syntax | Název varianty | Jazyk (y) |
---|---|---|
13Ahoj, svět! | Hollerithova notace | Fortran 66 |
(odsazeno mezerami) | Odsazeno mezerami a novými řádky | YAML |
Poznámky
- 1. ^
String.raw ''
stále zpracovává interpolaci řetězců.