Треки
/
Gleam
Gleam
/
Вправи
/
Рівні журналу
Рівні журналу

Рівні журналу

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

Вступ

Рядки тексту

Рядки тексту (англ. string) у Gleam - це незмінний текст, оточений подвійними лапками. Вони підтримують символи Unicode і можуть бути багаторядковими.

let greeting = "Hello, Joe! 📞"

let multi_line_string = "one
two
three"

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

let name = "Mike"
"Hello, " <> name <> "!"
// -> "Hello, Mike!"

Модуль gleam/string зі стандартної бібліотеки надає функції для роботи з рядками тексту.

Рядки тексту можна зіставляти у виразах case:

pub fn on_an_excellent_adventure(name: String) -> Bool {
  case name {
    "Bill" -> True
    "Ted" -> True
    _ -> False
  }
}

Якщо ми хочемо зіставити початок рядка тексту й присвоїти решту змінній, можна скористатися шаблоном оператора <>:

pub fn profession(name: String) -> String {
  case name {
    "Dr " <> rest -> rest <> " is a doctor"
    _ -> "I'm not sure what " <> name <> " does"
  }
}

Вказівки

У цій вправі ми будемо обробляти рядки журналу.

Кожен рядок журналу - це рядок тексту (англ. string), відформатований так: "[<LEVEL>]: <MESSAGE>".

Є три різні рівні журналу:

  • INFO
  • WARNING
  • ERROR

У нас є три завдання, кожне з яких приймає рядок журналу й просить зробити з ним щось.

1. Отримати повідомлення з рядка журналу

Реалізуйте функцію message, щоб вона повертала повідомлення з рядка журналу:

message("[ERROR]: Invalid operation")
// -> "Invalid operation"

Приберіть усі пробільні символи на початку та в кінці:

message("[WARNING]:  Disk almost full\r\n")
// -> "Disk almost full"

2. Отримати рівень журналу з рядка журналу

Реалізуйте функцію log_level, щоб вона повертала рівень журналу з рядка журналу в нижньому регістрі:

log_level("[ERROR]: Invalid operation")
// -> "error"

3. Переформатувати рядок журналу

Реалізуйте функцію reformat, яка переформатовує рядок журналу так, щоб повідомлення йшло першим, а рівень журналу був після нього в дужках:

reformat("[INFO]: Operation completed")
// -> "Operation completed (info)"
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Gleam Exercism

Час розпочати Рівні журналу?

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