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>".
Існує три різні рівні логування:
INFOWARNINGERRORНа нас чекають три завдання, і кожне з них приймає рядок логу та пропонує щось із ним зробити.
Реалізуйте функцію message, яка повертає повідомлення з рядка логу:
message "[ERROR]: Invalid operation"
// => "Invalid operation"
Пробіли на початку та в кінці треба прибрати:
message "[WARNING]: Disk almost full\r\n"
// => "Disk almost full"
Реалізуйте функцію logLevel, яка повертає рівень логування з рядка логу; рівень має бути в нижньому регістрі:
logLevel "[ERROR]: Invalid operation"
// => "error"
Реалізуйте функцію reformat, яка переформатовує рядок логу, ставлячи повідомлення першим, а рівень логування після нього в дужках:
reformat "[INFO]: Operation completed"
// => "Operation completed (info)"
Зареєструйтеся на Exercism, щоб вивчати й опановувати F#, а також 18 концепцій148 вправ та справжнє наставництво від людей, і все це безкоштовно.