Una string in F# è un oggetto che rappresenta testo immutabile come sequenza di caratteri Unicode (lettere, cifre, segni di punteggiatura, ecc.) e si definisce così:
let fruit = "Apple"
Le stringhe si manipolano chiamando i metodi della stringa oppure usando le funzioni del modulo String. Una volta costruita, una stringa non può più cambiare valore. Qualsiasi metodo o funzione che sembri modificare una stringa in realtà restituisce una nuova stringa.
Le stringhe si possono concatenare o formattare in diversi modi.
+ per la concatenazione:let sentence = "Apple" + " is a type of fruit."
sprintf per formattare il testo, dove hai dei segnaposto in un testo di formato (%s per una string) e fornisci i valori come argomenti:let sentence = sprintf "%s is a type of %s." "Apple" "fruit"
In questo esercizio elaborerai delle righe di log.
Ogni riga di log è una stringa formattata così: "[<LEVEL>]: <MESSAGE>".
Ci sono tre livelli di log diversi:
INFOWARNINGERRORHai tre attività da svolgere, e ognuna riceverà una riga di log su cui dovrai fare qualcosa.
Implementa la funzione message in modo che restituisca il messaggio di una riga di log:
message "[ERROR]: Invalid operation"
// => "Invalid operation"
Gli spazi bianchi all'inizio e alla fine vanno rimossi:
message "[WARNING]: Disk almost full\r\n"
// => "Disk almost full"
Implementa la funzione logLevel in modo che restituisca il livello di log di una riga di log, scritto in minuscolo:
logLevel "[ERROR]: Invalid operation"
// => "error"
Implementa la funzione reformat che riformatta la riga di log, mettendo prima il messaggio e poi il livello di log tra parentesi:
reformat "[INFO]: Operation completed"
// => "Operation completed (info)"
Iscriviti a Exercism per imparare e padroneggiare F# con 18 concetti148 esercizi e il mentoring di persone reali, tutto gratis.