古い Delphi バージョン(ANSI 文字列)では、ShortStrings:
var Str: String[30];
メモリ コストを削減するために使用でき、ANSI エンコーディングは引き続き使用できます。
現在の Unicode バージョンでは、ShortString は上記のように、Unicode でエンコードされたバージョンにエイリアスされていますか?
このプラクティスの利点は、メモリ コストを削減するためにまだ存在しますか?
Delphi の短い文字列は、最新の Unicode 対応の Delphi バージョンであっても、常に ANSI エンコーディングを使用します。これらは従来のデータ型と見なされているため、エンバカデロは Unicode を導入したときに変更を加えないことを選択しました。
短い文字列を使用しても、必ずしもメモリ コストが削減されるわけではありません。ストリングがすべて同じ長さに近い場合にのみそうします。文字列の長さに大きなばらつきがある場合、動的 (長い) 文字列を使用すると、メモリ オーバーヘッドが少なくなります。
短い文字列が動的な文字列よりも優れているとは思いません。それらは、動的文字列よりも古いという理由だけで存在します。動的ストリングが最初に発明されていたら、短いストリングは存在しなかったでしょう。実際、それらは新しいモバイル コンパイラには存在しません。つまり、動的文字列を使用するだけです。