Delphi: Record constructor vs factory function
So what will be the preferred way of initializing records? With a 'factory function': TMyRecord = record valueX: integer; valueY: integer; end; function MyRecord(const AValueX, AValueY: integer): TMyRecord; begin result.valueX := AValueX; result.valueY := AValueY; end; var myrec: TMyRecord; begin myrec := MyRecord(1, 2); end; or a constructor: TMyRecord = record valueX: integer; valueY: integer; constructor Create(const AValueX, AValueY: integer); end; constructor TMyRecord.Create(const AValueX, AValueY: integer); begin self.valueX := AValueX; self.valueY := AValueY; end; var myrec: TMyRecord;