Курс Raku / Розширені / Підпрограми / Множинна диспетчеризація / Вправи / Оптові ціни
Розв’язання: Оптові ціни
Ось один із можливих варіантів розв’язання задачі.
Код
multi sub price(Int $qty where $qty >= 10) { say 'bulk price' }
multi sub price(Int $qty) { say 'normal price' }
price(3);
price(25);🦋 Вихідний код можна знайти у файлі bulk-pricing.raku.
Вивід
normal price
bulk priceКоментарі
Перший кандидат має речення
where, яке приймає лише кількості від 10 і більше, тож викликprice(25)диспетчеризується саме до нього.Другий кандидат не має жодної умови й діє як всеохопний, тож
price(3)потрапляє туди.