連結演算子

連結演算子 || または !! は、2 つの文字列を連結して文字列の結果を生成するために使用されます。

複合代入演算子 ||= もサポートされています。次の 2 つの文は同等です。

s = s || s1;
s ||= s1;

両方の作用対象がビット文字列の場合、連結演算子はビット文字列の結果を生成します。

両方の作用対象が Widechar の場合、連結演算子は Widechar の結果を生成します。

両方の作用対象が Graphic の場合、連結演算子は Graphic の結果を生成します。

それ以外の場合は、一方の作用対象が Widechar であれば、もう一方の作用対象が (「データ型変換」で説明されている変換規則に従って) Widechar に昇格されます。一方の作用対象が Graphic で、もう一方の作用対象が Graphic でも Widechar でもない場合は、もう一方の作用対象が (「データ型変換」で説明されている変換規則に従って) Graphic に昇格されます。

それ以外の場合は、両方の作用対象が文字列に変換されて、文字列の結果が生成されます。

次に例を示します。

C = ‘004100420043’Wx; /* wide ‘ABC’ */
D = ‘DEF’;            /* char  ‘DEF’ */

C || D は、0x004100420043004400450046 を含む WIDECHAR の文字列を生成します (長さ = 6)。

文字列の結果の長さは、変換された作用対象の長さの合計です。次に例を示します。

A = 'ABC';
B = 'XYZ';

前の例では、A || B は「ABCXYZ」を生成し、A || 5 は「ABC 5」を生成します。空白文字を生成する変換規則については、「データ型変換」の章の「算術から文字列への変換」を参照してください。