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 ループのコーディング スタイルを (無限ループの使用を回避するために) 改善する方法を参照してください。)