Cursus Raku / Geavanceerd / Modules / Pakketten en naamruimten / Exercises / Een pakket
Oplossing: Een pakket
Hier is een mogelijke oplossing voor de opgave.
Code
package Temperature {
our $freezing = 0;
our sub fahrenheit($c) { $c * 9/5 + 32 }
}
say $Temperature::freezing;
say Temperature::fahrenheit(100);🦋 Je kunt de broncode vinden in het bestand a-package.raku.
Uitvoer
0
212Opmerkingen
Zowel de variabele als de subroutine zijn gedeclareerd met
our, dus beide worden onderdeel van deTemperature-naamruimte en zijn van buitenaf bereikbaar.De variabele wordt benaderd als
$Temperature::freezing— sigil, pakketnaam, dan variabelenaam — terwijl de subroutine wordt aangeroepen alsTemperature::fahrenheit(100). Het omrekenen van100geeft100 * 9/5 + 32, wat212is.Een gewoon
packagebiedt alleen de naamruimte. Voor een herbruikbare bibliotheek zouden wemodulehebben gebruikt — en zodra objecten in beeld komen, eenclass— maar het naamruimtemechanisme is in elk geval hetzelfde.
Cursusnavigatie
← Een pakket | Een geneste naam →