2012年10月5日金曜日

三項演算子

僕が C 系の言語でうらやましいなと思う機能があります。


それが上記の2つです。
列挙の件は、仕方ないとして三項演算子は BooleanHelper 作ったらいけるんじゃね!?と思いましたが全くいけないし、IfThen 関数があるので必要ありません。

IfThen 関数は3つの引数を取ります。

IfThen(条件式、真の時の値、偽の時の値)

です。
例えば↓こんな風に使います。

uses
  System.SysUtils, System.Math;

var
  i: Integer;
begin
  // 3の倍数の時 0 が返る
  for i := 1 to 100 do
    Writeln(IfThen(i mod 3 = 0, 0, i));
end.

uses に System.Math を指定すると Integer, Double など数値系の IfThen オーバーロード関数が使えるようになります。

System.StrUtils を追加すると、文字列に対する IfThen 関数が使えるようになります。

文字列版のサンプルは↓こうなります。

uses
  System.SysUtils, System.StrUtils;

var
  i: Integer;
begin
  // 3の倍数の時 Fizz が返る
  for i := 1 to 100 do
    Writeln(IfThen(i mod 3 = 0, 'Fizz', IntToStr(i)));
end.

少なくとも Delphi 7 の頃からある関数ですが、あまり知られていない感じがしたので、紹介してみました。

0 件のコメント:

コメントを投稿