C や C++ でできるように、Delphi レコードの集計代入を実行する方法はありますか? つまり、次のものと同等の構文はありますか。
struct silly { int x; int y; };
// ...
silly s = { 4, 5 };
デルファイの?
いいえ、正確に同等のものはありません。ただし、いくつかの同様のことを行うことができます。
たとえば、
type
TTestRecord = record
A, B, C: integer;
D, E, F: boolean;
end;
と
var
R1, R2: TTestRecord;
それからあなたはすることができます
R1 := R2;
したがって、1 つのレコードを値によって別のレコードに割り当てることができます。ただし、コードで「レコード リテラル」を指定することはできません。ただし、それにかなり近いものはかなり一般的です。
function TestRecord(A, B, C: integer; D, E, F: boolean): TTestRecord;
begin
result.A := A;
result.B := B;
result.C := C;
result.D := D;
result.E := E;
result.F := F;
end;
それからあなたは書くことができます
R1 := TestRecord(1, 2, 3, true, false, true)
これは、たとえば、 と を処理する方法TRect
ですTPoint
。ヘルパー関数Rect
とPoint
がありClasses.pas
ます。
余談:定数宣言では、もう少し多くのことができます:
const
R: TTestRecord = (A: 1; B: 2; C: 3; D: true; E: false; F: true);