En Gleam, les chaînes de caractères sont du texte immuable entouré de guillemets doubles. Elles prennent en charge les caractères Unicode et peuvent s'étendre sur plusieurs lignes.
let greeting = "Hello, Joe! 📞"
let multi_line_string = "one
two
three"
On peut concaténer des strings à l'aide de l'opérateur <> :
let name = "Mike"
"Hello, " <> name <> "!"
// -> "Hello, Mike!"
Le module gleam/string de la bibliothèque standard fournit des fonctions pour manipuler les strings.
On peut faire du filtrage par motif sur les strings dans les expressions case :
pub fn on_an_excellent_adventure(name: String) -> Bool {
case name {
"Bill" -> True
"Ted" -> True
_ -> False
}
}
Si tu veux filtrer sur le début d'une string et affecter le reste à une variable, tu peux utiliser le motif basé sur l'opérateur <> :
pub fn profession(name: String) -> String {
case name {
"Dr " <> rest -> rest <> " is a doctor"
_ -> "I'm not sure what " <> name <> " does"
}
}
Dans cet exercice, tu vas traiter des lignes de log.
Chaque ligne de log est une string au format suivant : "[<LEVEL>]: <MESSAGE>".
Il existe trois niveaux de log différents :
INFOWARNINGERRORTu as trois tâches, qui prennent chacune une ligne de log et te demandent d'en faire quelque chose.
Implémente la fonction message pour qu'elle renvoie le message d'une ligne de log :
message("[ERROR]: Invalid operation")
// -> "Invalid operation"
Les espaces en début et en fin de ligne doivent être supprimés :
message("[WARNING]: Disk almost full\r\n")
// -> "Disk almost full"
Implémente la fonction log_level pour qu'elle renvoie le niveau de log d'une ligne de log, en minuscules :
log_level("[ERROR]: Invalid operation")
// -> "error"
Implémente la fonction reformat qui reformate la ligne de log, en plaçant le message en premier et le niveau de log après, entre parenthèses :
reformat("[INFO]: Operation completed")
// -> "Operation completed (info)"
Inscris-toi sur Exercism pour apprendre et maîtriser Gleam avec 33 concepts122 exercices, et un vrai mentorat humain, le tout gratuitement.