10.8  Internal Representation of Records

10.8 Internal Representation of Records

Record expressions are translated to tuple expressions during compilation. A record defined as:

-record(Name, {Field1,...,FieldN}).

is internally represented by the tuple:

{Name,Value1,...,ValueN}

Here each ValueI is the default value for FieldI.

To each module using records, a pseudo function is added during compilation to obtain information about records:

record_info(fields, Record) -> [Field]
record_info(size, Record) -> Size

Size is the size of the tuple representation, that is, one more than the number of fields.

In addition, #Record.Name returns the index in the tuple representation of Name of the record Record.

Name must be an atom.