Records

From Erlang Community

(Difference between revisions)
Revision as of 11:45, 15 July 2007 (edit)
Bryan (Talk | contribs)
m (I messed up the layout a little bit with the last edit, so this fixes that.)
← Previous diff
Revision as of 11:47, 15 July 2007 (edit) (undo)
Bryan (Talk | contribs)
(Added 'Concepts' Category tag.)
Next diff →
Line 1: Line 1:
 +[[Category:Concepts]]
== Defining Records == == Defining Records ==

Revision as of 11:47, 15 July 2007

Contents

Defining Records

Without Defaults

Defining a record in code looks like this:

-record( recordname, { element1, element2, element3 } ).

Defining one in the interpreter looks like this:

rd(recordname, {element1, element2, element3}).

With Defaults

Defining a record in code looks like this:

-record( recordname, { element1 = "One", element2 = 2, element3 = three } ).

Defining one in the interpreter (what I did to create these examples) looks like this:

rd(recordname, {element1 = "One", element2 = 2, element3  = three }).


Matching a Record

elementTwoTimesEight( #recordname{ element2 = T } ) -> T * 8.


Modifying a Record

2> R1 = #recordname{}.  % Uses the defaults. 
#recordname{element1 = "One",element2 = 2,element3 = three}
3> R2 = R1#recordname{ element1 = "Two" }.  % Only modify one part of the record.
#recordname{element1 = "Two",element2 = 2,element3 = three}


More Information

More information at http://erlang.org/doc/getting_started/records_macros.html#5.3.

Erlang/OTP Projects
Personal tools