Cursus Raku / Geavanceerd / Subroutines / Meervoudige dispatch / Exercises / Staffelkorting
Oplossing: Staffelkorting
Hier is een mogelijke oplossing voor de opgave.
Code
multi sub price(Int $qty where $qty >= 10) { say 'bulk price' }
multi sub price(Int $qty) { say 'normal price' }
price(3);
price(25);🦋 Je kunt de broncode vinden in het bestand bulk-pricing.raku.
Uitvoer
normal price
bulk priceOpmerkingen
De eerste kandidaat heeft een
where-clausule die alleen hoeveelheden van 10 of meer accepteert, dus de aanroepprice(25)wordt daarnaar gedispatcht.De tweede kandidaat heeft geen voorwaarde en fungeert als vangnet, dus
price(3)gaat daarheen.