Στη F#, το string είναι ένα αντικείμενο που αναπαριστά αμετάβλητο κείμενο ως ακολουθία χαρακτήρων 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"
Σε αυτή την άσκηση θα επεξεργάζεσαι γραμμές καταγραφής.
Κάθε γραμμή καταγραφής είναι μια συμβολοσειρά με την εξής μορφή: "[<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 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.