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

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

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

Вступ

Рядки тексту

string (рядок тексту) у F# - це обʼєкт, який являє собою незмінний текст у вигляді послідовності символів Unicode (літер, цифр, розділових знаків тощо) і визначається так:

let fruit = "Apple"

З рядками тексту працюють, викликаючи методи самого рядка або функції модуля String. Після того як рядок тексту створено, його значення вже не може змінитися. Будь-які методи чи функції, які на вигляд змінюють рядок тексту, насправді повертають новий рядок тексту.

Рядки тексту можна зʼєднувати або форматувати кількома різними способами.

  • Для конкатенації можна скористатися оператором +:
let sentence = "Apple" + " is a type of fruit."
  • Для форматування тексту можна скористатися функцією sprintf: у тексті формату розміщують заповнювачі (%s для string), а значення передають як аргументи:
let sentence = sprintf "%s is a type of %s." "Apple" "fruit"

Вказівки

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

Кожен рядок логу — це рядок тексту (англ. 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. Отримати рівень логування з рядка логу

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

logLevel "[ERROR]: Invalid operation"
// => "error"

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

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

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

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

Зареєструйтеся на Exercism, щоб вивчати й опановувати F#, а також 18 концепцій148 вправ та справжнє наставництво від людей, і все це безкоштовно.