Треки
/
Go
Go
/
Вправи
/
Ласкаво просимо до Tech Palace!
Ласкаво просимо до Tech Palace!

Ласкаво просимо до Tech Palace!

Навчальна вправа

Вступ

Рядок тексту (англ. string) у Go - це незмінна послідовність байтів, яка не обовʼязково має представляти символи.

Рядковий літерал визначається між подвійними лапками:

const name = "Jane"

Рядки тексту можна зʼєднувати за допомогою оператора +:

"Jane" + " " + "Austen"
// => "Jane Austen"

Деякі спеціальні символи потрібно екранувати за допомогою зворотної скісної риски, наприклад \t для символу табуляції та \n для нового рядка в рядках тексту.

"How is the weather today?\nIt's sunny"  
// =>
// How is the weather today?
// It's sunny

Пакет strings містить багато корисних функцій для роботи з рядками тексту. Докладніше про функції для роботи з рядками можна дізнатися з документації пакета strings. Ось кілька прикладів:

import "strings"

// strings.ToLower returns the string given as argument with all its characters lowercased
strings.ToLower("MaKEmeLoweRCase")
// => "makemelowercase"

// strings.Repeat returns a string with a substring given as argument repeated many times
strings.Repeat("Go", 3)
// => "GoGoGo"

Вказівки

Неподалік є магазин побутової техніки «Tech Palace». Власник магазину нещодавно встановив великий дисплей, щоб показувати маркетингові повідомлення й особливе вітання, коли покупці сканують свої картки лояльності на вході. Дисплей складається з безлічі маленьких світлодіодів і може показувати кілька рядків тексту.

Власник магазину просить нас допомогти з кодом, який генерує текст для нового дисплея.

1. Створіть вітальне повідомлення

Для більшості покупців, які сканують свої картки лояльності, власник магазину хоче бачити на дисплеї "Welcome to the Tech Palace,", а далі імʼя покупця великими літерами.

Реалізуйте функцію WelcomeMessage, яка приймає імʼя покупця як аргумент типу string і повертає потрібне повідомлення як string.

WelcomeMessage("Judy")
// => Welcome to the Tech Palace, JUDY

2. Додайте ефектну рамку

Для постійних покупців, які багато купують у магазині, власник хоче зробити вітальний дисплей ошатнішим, додавши рядок зірочок перед вітальним повідомленням і після нього. Він ще не визначився, скільки зірочок має бути в рядках, тому хоче, щоб це можна було налаштовувати.

Напишіть функцію AddBorder, яка приймає вітальне повідомлення (типу string) і кількість зірочок у рядку (типу int) як аргументи. Вона має повернути string, що складається з 3 рядків: рядка з потрібною кількістю зірочок, потім вітального повідомлення в тому вигляді, у якому його передали, і ще одного рядка зірочок.

AddBorder("Welcome!", 10)

Має повернути таке:

**********
Welcome!
**********

3. Очистьте старі маркетингові повідомлення

Перш ніж встановити цей новий дисплей, у магазині був схожий дисплей, який умів показувати лише статичні рядки, які не можна було налаштувати. Власник хотів би повторно використати частину старих маркетингових повідомлень на новому дисплеї. Однак дані вже містять рамку із зірочок і деякі небажані пробіли. Наше завдання - очистити повідомлення, щоб їх можна було використати повторно.

Реалізуйте функцію CleanUpMessage, яка приймає старе маркетингове повідомлення як рядок тексту (англ. string). Функція має спочатку прибрати всі зірочки з тексту, а потім прибрати пробіли на початку й у кінці решти тексту. Потім функція має повернути очищене повідомлення.

message := `
**************************
*    BUY NOW, SAVE 10%   *
**************************
`

CleanUpMessage(message)
// => BUY NOW, SAVE 10%
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Go Exercism

Час розпочати Ласкаво просимо до Tech Palace!?

Зареєструйтеся на Exercism, щоб вивчати й опановувати Go, а також 34 концепції165 вправ та справжнє наставництво від людей, і все це безкоштовно.