Thread subroutinen für Hashes und Arrays definieren (8 answers)
Opened by Wild.Card at 2017-10-19 16:37

rosti
 2017-10-21 18:45
#187584 #187584
User since
2011-03-19
3219 Artikel
BenutzerIn
[Homepage]
user image
2017-10-21T16:17:14 hlubenow
2017-10-20T23:59:55 rosti
Darum gehts ja auch gar nicht. Vielmehr gehts darum, abstrakte Datentypen in Instanzen abzubilden und diesbezügliche Berechnungen zu eigenen Methoden zu machen. Genau das ist die Zweckbestimmung einer objektorientierten Programmierung. MfG

Das sehe ich auch so. Er wird ja voraussichtlich noch andere Personen als "Alfred" definieren, die dieselben oder ähnliche Eigenschaften haben, das heißt, für die ein Durschnitt der Sushibarbesuche berechnet werden soll.
Da lohnen sich die paar Zeilen Code mehr. Macht es übersichtlich, und vor allem kann man diese Objekte ganz einfach insgesamt an andere Funktionen übergeben, ohne sich groß um Dereferenzierungen Gedanken machen zu müssen.


Danke für Dein Feedback. Untenstehend eine Minimalversion mit objektorientiertem Ansatz. Auch das ist OOP ;)

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Instanz der Package main erstellen
my $main = bless{
    name => 'Alfred', 
    betreff => "Monatliche Sushibarbesuche im halben Jahr", 
    konsum => [4, 2, 5, 7, 5, 3]
}; 

# und mit dieser Instanz eine Methode aufrufen
printf("Summe: %d, Durchschnitt: %2.2f\n", $main->calc);

sub calc{
    my $self = shift;
    my $sum = 0;
    foreach my $amt( @{$self->{konsum}} ){
        $sum += $amt;
    }
    my $avg = $sum / scalar @{$self->{konsum}};    
    return ($sum, $avg);
}

View full thread subroutinen für Hashes und Arrays definieren