過去と現在のIT

子供の頃に触れたPC(MSX)・ゲーム機(ファミコン)・ 最近ゲットしたPC9801や現在のIT技術についてのブログです。 たまに日常的なことも… なお、このブログの記載内容通りに設定等を行う際は、自己責任でお願いします。 万が一、不利益な事が発生しても、当方は一切の責任を負いかねます。

Delphi10.3 Rioからインライン変数と型推論が使えるようになったそうです。
試しに使ってみましたが…
20200824_0001

なぜかエラーが発生してしまいます。でも、ビルドできて実行もできます。
どうやら、エラーインサイト(自動構文チェックをしている機能)が、
インライン変数と型推論に対応していないようです。

気になるようなら、エラーインサイトを無効にすればいいようです。
20200824_0002

これで、エラーを気にせずにコーディングできます。
20200824_0003

でも、なんか違うような気が・・・

program sample002;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils,
  Math;

// 表示
procedure Disp(dispMessage :string);
begin
  Writeln(dispMessage);
end;

// 引数の2乗を返す
function CalcSquare(x :Integer) :Integer;
var
  tmp: Double;
begin
  tmp := x;
  Result := Trunc(Math.Power(tmp, 2));
end;

// メイン
var
  // 識別子は大文字小文字の区別はない
  x: Integer; // signed int32
  str: String;
begin
  try
    x := 100;
    str := 'x = ' + IntToStr(x) + ' となります';
    Disp(str);

    x := x + 10;
    str := 'x + 10 = ' + IntToStr(x) + ' となります';
    Disp(str);

    {
    // 整数の除算で「/」は使用できない
    x := x / 10;
    str := 'x / 10 = ' + IntToStr(x) + ' となります';
    Writeln(str);
    }

    // 整数の除算では「div」を使用
    x := x div 10;
    str := 'x div 10 = ' + IntToStr(x) + ' となります';
    Disp(str);

    x := CalcSquare(x);
    str := 'xの2乗は ' + IntToStr(x) + ' となります';
    Disp(str);

    Readln;

  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.
・実行結果
20200823_0004

・プロジェクト作成
 ※Visual Studioみたいに、プロジェクト作成時に保存しません。
  プロジェクト作成後、すぐにプロジェクトファイルを保存することをおすすめします。
20200823_0001

・初めて書くDelphiプログラム
program sample001;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils;

begin
  try
    // Hello, Worldを表示
    Writeln('Hello, World!! from MSX-XSM');

    // キー入力待ち
    Readln;

  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.

・実行結果
20200823_0002
 

↑このページのトップヘ