Zugriff auf die Attribute
Auf Attributwerte zugreifen
Mit Hilfe von Records kann man mehrere Daten zu einem Datensatz zusammenfassen. In Anwendungssituationen muss man häufig auf einzelne Daten eines Datensatzes zugreifen. Der folgende Dialog in der REPL zeigt (am bereits betrachteten Beispiel) wie man das macht.
module Mailadressen exposing (..)
type alias Person =
{
vorname: String,
nachname: String,
geburtsdatum:
{
tag: Int,
monat: Int,
jahr: Int
}
}
person1: Person
person1 =
{
vorname = "Anuk",
nachname = "Franck",
geburtsdatum =
{
tag = 6,
monat = 6,
jahr = 2006
}
}
> import Mailadressen exposing (..)
> person1
{ geburtsdatum = { jahr = 2006, monat = 6, tag = 6 }, nachname = "Franck", vorname = "Anuk" }
: Person
> person1.vorname
"Anuk" : String
> person1.geburtsdatum
{ jahr = 2006, monat = 6, tag = 6 }
: { jahr : Int, monat : Int, tag : Int }
> person1.geburtsdatum.jahr
2006 : Int
Aufgabe 1
(a) Probiere das selbst aus.
(b) Greife analog auf den Nachnamen und den Monat des Geburtsdatums zu.
Aufgabe 2
Teste den Zugriff auf Attributwerte auch mit dem erweiterten Datensatz aus dem letzten Abschnitt.
Aufgabe 3
Der Zugriff auf Attributwerte kann auch mit Hilfe von - passend zum Record gebildeten - Zugriffsfunktionen erfolgen. Probiere das selbst aus.
module Mailadressen exposing (..)
type alias Person =
{
vorname: String,
nachname: String,
geburtsdatum:
{
tag: Int,
monat: Int,
jahr: Int
}
}
person1: Person
person1 =
{
vorname = "Anuk",
nachname = "Franck",
geburtsdatum =
{
tag = 6,
monat = 6,
jahr = 2006
}
}
> import Mailadressen exposing (..)
> .vorname person1
"Anuk" : String
> .tag (.geburtsdatum person1)
6 : Int