Διαδρομές
/
Gleam
Gleam
/
Ασκήσεις
/
Επίπεδα καταγραφής
Επίπεδα καταγραφής

Επίπεδα καταγραφής

Άσκηση εκμάθησης

Εισαγωγή

Συμβολοσειρές

Οι συμβολοσειρές στη Gleam είναι αμετάβλητο κείμενο που περικλείεται από διπλά εισαγωγικά. Υποστηρίζουν χαρακτήρες unicode και μπορούν να εκτείνονται σε πολλές γραμμές.

let greeting = "Hello, Joe! 📞"

let multi_line_string = "one
two
three"

Μπορείς να ενώσεις συμβολοσειρές με τον τελεστή <>:

let name = "Mike"
"Hello, " <> name <> "!"
// -> "Hello, Mike!"

Το module 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 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.