復刻して覚えて、使ってください、ありがとう。
DATA ts TYPE TABLE OF string.
ts = VALUE #( ( 'A' ) ).
エラーを報告する問題は、型の競合です。
だから私は文字と文字列、文字列操作のいくつかの記号を再理解します。
まず、ABAPは文字列を次のように定義します。深い構造であるテキスト文字列リテラル。char型は、通常の構造であるテキストフィールドリテラルとして定義されます。
最初に `` ''の違いを分析してみましょう.abapキーワードドキュメントクエリから知ることができます:
構文 | 名前 | 可能なキャラクター |
「...」 | テキストフィールドリテラル | 任意の英数字の文字列。データ型はcで、囲まれた文字の長さ(末尾の空白を含む)になります。 |
`...` | テキスト文字列リテラル | 任意の英数字の文字列。データ型は文字列です。テキスト文字列リテラルは最大255文字です。 |
上記からわかるように、 ''の本来の意味はc型を作成することなので、一般的に使用される文字列= ''です。実際、標準化されていません。これは、文字列に強制的に割り当てられるC型を作成することであり、通常の記述はstring =である必要があります``。
もちろん、ABAPプログラムの要件は常に使用可能です...
次は||です。テストでは、||を使用してそれを作成できることが示されています。||とは何ですか?
最初は&|の代わりに||を使用して文字列を連結しました(使いやすい)ので、深いことは考えていません。
今回は注意深くチェックしました。私はこの文を見ました:文字列テンプレートの新しい構文形式| {} |
文字列テンプレートから、このことの目的は文字列を作成することであることがわかります
文字列テンプレートの目的は、リテラルテキストと埋め込み式から新しい文字列を作成することです。
簡単な翻訳は、これはテキストと埋め込み式({変数})で新しい文字列を作成することです。
要約すると、これらの3つの記号をより合理的に使用できるため、プログラムがより標準化され、美しくなります。