1

Cでは、次のように1行で2つの変数を割り当てることができます

b = a = sqrt(10);

デルフィで

b := a := Sqrt(10);

許可されていません。

では、 Delphi - Equivalent to C#'s ternary operator?で説明されているように、三項演算子IfThenの「代替」があります。要約すると、絶対に必要ではないようです。?:IfThen

したがって、次のようなものもあります。

function AssignAndReturn(var LHS: Integer; RHS: Integer): Integer;
begin
  LHS := RHS;
  Result := RHS;
end;

(...)

var
  a, b: Integer;
begin
  b := AssignAndReturn(a, Round(Sqrt(10)));

「すべてをCのように見せる」ことを試みているわけではありません。同じ行で割り当ての右側をもう一度「再利用」するとよい場合があることに気付きました。(たとえば、Lazarus/Free Pascal: ブール式がパスごとに再割り当てされる while ループのコーディング スタイルを (無限ループの使用を回避するために) 改善する方法を参照してください。)

4

2 に答える 2