مسیرها
/
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 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.