Курс Raku / Розширені / Модулі / Пакети та простори імен 🆕 / Вправи / Пакет
Розв’язання: Пакет
Ось один із можливих варіантів розв’язання задачі.
Код
package Temperature {
our $freezing = 0;
our sub fahrenheit($c) { $c * 9/5 + 32 }
}
say $Temperature::freezing;
say Temperature::fahrenheit(100);🦋 Вихідний код можна знайти у файлі a-package.raku.
Вивід
0
212Коментарі
І змінну, і підпрограму оголошено через
our, тож обидві стають частиною простору іменTemperatureй доступні ззовні.До змінної дістаються як
$Temperature::freezing— сигіл, ім’я пакунка, потім ім’я змінної, — а підпрограму викликають якTemperature::fahrenheit(100). Переведення100дає100 * 9/5 + 32, тобто212.Звичайний
packageдає лише простір імен. Для придатної до повторного використання бібліотеки ми взяли бmodule, а коли на кону об’єкти —class, але механізм простору імен у кожному з випадків той самий.
Навігація курсом
← Пакет | Вкладене ім’я →