2012年10月11日木曜日

String での Low, High

昨日の記事で、なんか String のインデックスが他の言語と同じように「0」始まりになるのではないか?ということを書きました。
既存リソースは仕方ないとして、今後は
procedure Test;
var
i: Integer;
Str: String;
begin
Str := 'Hello, NEXTGEN !';
for i := 1 to Length(Str) do
Write(Str[i]);
end;

とは書かず

procedure Test;
var
i: Integer;
Str: String;
begin
Str := 'Hello, NEXTGEN !';
for i := Low(Str) to High(Str) do
Write(Str[i]);
end;

と書いた方が良さそうです。
ちなみに、XE3 以降から、この書き方ができるっぽいです。

エンバカデロの某スタッフに「Low と High は使っておいたいいよ」と言われたのですが、これも含んでの事なんですかね……
配列関係では、0 から始まるの知っていても Low を使っていたのですが、これは対応できなかった!

record helper から、こんな所まで話が広がるとは思ってもみませんでした。
個人的には、とても楽しめた "record helper saga" でした。

0 件のコメント:

コメントを投稿