Records

From Erlang Community

(Difference between revisions)
Revision as of 11:01, 15 July 2007 (edit)
Bryan (Talk | contribs)
(Added a very rudimentary page about records (since I didn't know how to use them, and there was no page about them on the wiki).)
← Previous diff
Current revision (10:48, 27 July 2007) (edit) (undo)
Bryan (Talk | contribs)
(Added how to get a value out of a record.)
 
(4 intermediate revisions not shown.)
Line 1: Line 1:
 +[[Category:Concepts]]
== Defining Records == == Defining Records ==
 +
 +=== Without Defaults ===
 +
 +Defining a record in code looks like this:
<code> <code>
Line 5: Line 10:
</code> </code>
-== Creating a Record ==+Defining one in the interpreter looks like this:
<code> <code>
-R = #recordname{ element1 = "One", element2 = 2, element3 = three }.+rd(recordname, {element1, element2, element3}).
</code> </code>
 +
 +=== With Defaults ===
 +
 +Defining a record in code looks like this:
 +
 +<code>
 +-record( recordname, { element1 = "One", element2 = 2, element3 = three } ).
 +</code>
 +
 +Defining one in the interpreter (what I did to create these examples) looks like this:
 +
 +<code>
 +rd(recordname, {element1 = "One", element2 = 2, element3 = three }).
 +</code>
 +
== Matching a Record == == Matching a Record ==
Line 16: Line 36:
elementTwoTimesEight( #recordname{ element2 = T } ) -> T * 8. elementTwoTimesEight( #recordname{ element2 = T } ) -> T * 8.
</code> </code>
 +
 +== Getting the value of a record element ==
 +
 +<code>
 +1> R1 = #recordname{}. % Uses the defaults.
 +#recordname{element1 = "One",element2 = 2,element3 = three}
 +2> io:format("~p~n", [R1#recordname.element1]). % prints "One"
 +"One"
 +ok
 +</code>
 +
 +
 +== Modifying a Record ==
 +
 +<code>
 +3> R2 = #recordname{}. % Uses the defaults.
 +#recordname{element1 = "One",element2 = 2,element3 = three}
 +4> R3 = R2#recordname{ element1 = "Two" }. % Only modify one part of the record.
 +#recordname{element1 = "Two",element2 = 2,element3 = three}
 +</code>
 +
 +
 +== More Information ==
 +
 +More information at [http://erlang.org/doc/getting_started/records_macros.html#5.3 http://erlang.org/doc/getting_started/records_macros.html#5.3].

Current revision

Contents

[edit] Defining Records

[edit] 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}).

[edit] 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 }).


[edit] Matching a Record

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

[edit] Getting the value of a record element

1> R1 = #recordname{}.  % Uses the defaults.
#recordname{element1 = "One",element2 = 2,element3 = three}
2> io:format("~p~n", [R1#recordname.element1]). % prints "One"
"One"
ok


[edit] Modifying a Record

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


[edit] More Information

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

Erlang/OTP Projects
Personal tools