مسیرها
/
Gleam
Gleam
/
تمرین‌ها
/
سطح‌های لاگ
سطح‌های لاگ

سطح‌های لاگ

تمرین یادگیری

مقدمه

رشته

در Gleam، «رشته» متنی تغییرناپذیر است که بین دو علامت نقل‌قول دوگانه قرار می‌گیرد. رشته‌ها از نویسه‌های یونیکد پشتیبانی می‌کنند و می‌توانند چندخطی باشند.

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"
  }
}

دستورالعمل‌ها

در این تمرین، خطوط لاگ را پردازش می‌کنید.

هر خط لاگ رشته‌ای است که به این شکل قالب‌بندی شده است: "[<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 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.