المسارات
/
F#
F#
/
التمارين
/
مستويات السجل
مستويات السجل

مستويات السجل

تمرين تعلّمي

مقدمة

السلاسل النصية

string في F# هو كائن يمثّل نصًا غير قابل للتغيير على هيئة تسلسل من حروف يونيكود (حروف وأرقام وعلامات ترقيم وما إلى ذلك)، ويُعرَّف كما يلي:

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"

التعليمات

في هذا التمرين ستتعامل مع أسطر السجل.

كل سطر سجل هو سلسلة نصية بتنسيق كالتالي: "[<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 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.