Raku-Kurs / Fortgeschritten / Module / Pakete und Namensräume / Exercises / Ein Paket
Lösung: Ein Paket
Hier ist eine mögliche Lösung der Aufgabe.
Code
package Temperature {
our $freezing = 0;
our sub fahrenheit($c) { $c * 9/5 + 32 }
}
say $Temperature::freezing;
say Temperature::fahrenheit(100);🦋 Du findest den Quellcode in der Datei a-package.raku.
Ausgabe
0
212Kommentare
Sowohl die Variable als auch die Subroutine sind mit
ourdeklariert, sodass beide Teil desTemperature-Namensraums werden und von außen erreichbar sind.Die Variable wird als
$Temperature::freezingerreicht — Sigil, Package-Name, dann Variablenname — während die Subroutine alsTemperature::fahrenheit(100)aufgerufen wird. Die Umrechnung von100ergibt100 * 9/5 + 32, also212.Ein einfaches
packagestellt nur den Namensraum bereit. Für eine wiederverwendbare Bibliothek hätten wir stattdessenmoduleverwendet — und sobald Objekte ins Spiel kommen, eineclass— aber der Namensraum-Mechanismus ist in jedem Fall derselbe.