| プログラミング言語の比較 |
|---|
このプログラミング言語 (文字列) の比較では、 52 を超えるさまざまなコンピュータプログラミング言語の文字列データ構造またはテキスト文字列処理の機能を比較します。
連結
言語によって連結演算子の記号は異なります。多くの言語では「+」記号が使用されますが、いくつかの言語ではこれとは異なります。
一般的な変異体
| オペレーター | 言語 |
|---|---|
| + | ALGOL 68、BASIC、C++、C#、Cobra、Dart、Eiffel、F#、Go、Java、JavaScript、Object Pascal、Pascal、Python、Ruby、Rust、Scala、Swift、Turing、Windows PowerShell、Ya |
| ++ | Elm、Erlang、Haskell |
| $+ | mIRCスクリプト言語 |
| & | Ada、AppleScript、COBOL(リテラルのみ)、Curl、Excel、FreeBASIC、HyperTalk、Nim、Seed7、VHDL、Visual Basic、Visual Basic .NET |
| 連結する | コモンリスプ |
| 。 | Autohotkey、Maple(バージョン5まで)、Perl、PHP |
| 〜 | D、Raku、Symfony(式言語コンポーネント) |
| || | Icon、Maple(バージョン6以降)、PL/I、Rexx、標準SQL |
| <> | Mathematica、Wolfram言語、Elixir |
| .. | ルア |
| : | 基本を選択 |
| 、 | APL、J、Smalltalk |
| ^ | F#、OCaml、rc、標準ML |
| // | フォートラン |
| * | ジュリア |
ユニークな変種
- AWKは空文字列を使用します。つまり、隣接する2つの式は連結されます。これは並置 と呼ばれます。Unixシェルにも同様の構文があります。Rexxは、間にスペースを挟む連結にこの構文を使用します。
- C言語( PythonやDart [ 1 ]も同様)では文字列リテラルの並置が可能ですが、文字配列として格納された文字列の場合は関数
strcatを使用する必要があります。 - COBOL は、ステートメントを使用して
STRING文字列変数を連結します。 - MATLABとOctave は、構文 "
[x y]" を使用して x と y を連結します。 - Visual BasicおよびVisual Basic .NETでも " " 記号を使用できます
+が、数値を表す文字列と数値が一緒の場合、あいまいさが生じる可能性があります。 - Microsoft Excel では、
&「 」と関数「 」の両方が使用できます=CONCATENATE(X,Y)。 - Rust
concat!にはマクロ とマクロがありformat!、ドキュメントや例全体では後者が最もよく使用されます。
文字列リテラル
このセクションでは、文字列リテラルを宣言するためのスタイルを比較します。
引用挿入
コンパイラ/インタープリタが式を評価し、その結果をその場所に挿入すると、式は文字列に「補間」されます。
| 構文 | 言語 |
|---|---|
$"hello, {name}" | C#、Visual Basic .NET |
"Hello, $name!" | Bourne シェル、Dart、Perl、PHP、Windows PowerShell |
qq(Hello, $name!) | Perl(代替) |
"Hello, {$name}!" | PHP(代替) |
"Hello, #{name}!" | CoffeeScript、Ruby、Elixir |
%Q(Hello, #{name}!) | ルビー(代替) |
(format nil "Hello, ~A" name) | コモンリスプ |
`Hello, ${name}!` | JavaScript(ECMAScript 6) |
"Hello, \(name)!" | 迅速 |
f'Hello, {name}!' | パイソン |
エスケープされた引用符
「エスケープされた」引用符は、フラグの後の文字が文字列の終了ではなく文字列内で使用されていることを警告するために「フラグ」記号が使用されることを意味します。
| 構文 | 言語 |
|---|---|
"I said \"Hello, world!\"" | C、C++、C#、D、Dart、F#、Java、JavaScript、Mathematica、Ocaml、Perl、PHP、Python、Rust、Swift、Wolfram言語、Ya |
'I said \'Hello, world!\'' | CoffeeScript、Dart(代替)、JavaScript(代替)、Python(代替) |
"I said `"Hello, world!`"" | Windows PowerShell |
"I said ^"Hello, world!^"" | レボル |
{I said "Hello, world!"} | REBOL(代替) |
"I said, %"Hello, World!%"" | エッフェル |
!"I said \"Hello, world!\"" | フリーベーシック |
r#"I said "Hello, world!""# | 錆(代替) |
R"("I said "Hello, world!")" | C++(代替) |
二重引用符
「二重引用符」とは、文字列内で引用符が使用されるたびに引用符が 2 回使用され、そのうちの 1 つが破棄され、文字列内では単一引用符が使用されることを意味します。
| 構文 | 言語 |
|---|---|
"I said ""Hello, world!""" | Ada、ALGOL 68、COBOL、Excel、Fortran、FreeBASIC、Visual Basic (.NET) |
'I said ''Hello, world!''' | APL、COBOL、Fortran、Object Pascal、Pascal、rc、Smalltalk、SQL |
引用元
「Raw」とは、コンパイラがエスケープや補間を処理せずに、リテラル内のすべての文字を記述どおりに扱うことを意味します。
| 構文 | 言語 |
|---|---|
'Hello, world!' | APL、Bourne Shell、Fortran、Object Pascal、Pascal、Perl、PHP、Pick Basic、Ruby、Smalltalk、Windows PowerShell |
q(Hello, world!) | Perl(代替) |
%q(Hello, world!) | ルビー(代替) |
R"(Hello, world!)" | C++11 |
@"Hello, world!" | C#、F# |
r"Hello, world!" | コブラ、D、ダート、パイソン、ラスト |
r'Hello, world!' | ダーツ(代替) |
"Hello, world!" | Cobol、FreeBASIC、Pick Basic |
`Hello, world!` | D、ゴー |
raw"Hello, world!" | スカラ |
String.raw`Hello, World!` | JavaScript(ECMAScript 6)[1] |
複数行の文字列
多くの言語には、複数行の文字列に特化した構文があります。これらの言語の中には、この構文がヒアドキュメント(「heredoc」)と呼ばれるものもあります。これは、文字列を表すトークンがコード行の途中に置かれますが、コードは開始トークンの後に続き、文字列の内容は次の行まで現れません。他の言語では、文字列の内容は開始トークンの直後から始まり、コードは文字列リテラルの終端記号の後に続きます。
| 構文 | ここに文書 | 言語 |
|---|---|---|
<<終了 言いたいことがたくさんある そしてそれを言う時間はあまりない 終了 | はい | Bourneシェル、Perl、Ruby |
<<<終了 言いたいことがたくさんある そしてそれを言う時間はあまりない 終了 | はい | PHP |
@" 言いたいことがたくさんある そしてそれを言う時間はあまりない 「@ | いいえ | Windows PowerShell |
「」 言いたいことがたくさんある そしてそれを言う時間はあまりない ]" | いいえ | エッフェル |
「」 言いたいことがたくさんある そしてそれを言う時間はあまりない 「」 | いいえ | CoffeeScript、Dart、Groovy、Java、Kotlin、Python、Swift |
「 言いたいことがたくさんある そしてそれを言う時間はあまりない 「 | いいえ | Common Lisp (すべての文字列は複数行)、Rust (すべての文字列は複数行)、Visual Basic .NET (すべての文字列は複数行) |
R"( 言いたいことがたくさんある そしてそれを言う時間はあまりない )" | いいえ | C++ |
r" 言いたいことがたくさんある そしてそれを言う時間はあまりない 「 | いいえ | さび |
[[ 言いたいことがたくさんある そしてそれを言う時間はあまりない ]] | いいえ | ルア |
` 言いたいことがたくさんある そしてそれを言う時間はあまりない ` | いいえ | JavaScript(ECMAScript 6) |
ユニークな引用符のバリエーション
| 構文 | バリアント名 | 言語 |
|---|---|---|
13HHello, world! | ホレリス記法 | フォートラン66 |
| (空白でインデント) | 空白と改行でインデント | ヤムル |
注記
- 1. ^
String.raw``は引き続き文字列の補間を処理します。