Formatage de chaînes
Les littéraux chaîne sont simples — pas de syntaxe d'expression embarquée. Pour construire une chaîne à partir de variables sans un long enchaînement de +, utilise format(modele, ...args) : elle remplace chaque {} dans modele, de gauche à droite, par l'argument correspondant converti en texte de la même façon que str() le ferait.
ton.string nom = "kuro"
ton.int age = 5
print(format("Bonjour {}, tu auras {} l'année prochaine !", nom, age + 1))
// Bonjour kuro, tu auras 6 l'année prochaine !
Un argument peut être n'importe quelle valeur — un nombre, une chaîne, le résultat d'un appel de fonction, tout ce que str() peut convertir. Un {} en trop sans argument correspondant reste tel quel ({}) ; des arguments en trop au-delà du nombre de {} sont simplement ignorés.
f-strings (depuis beta-2.0.0) — préfixe une chaîne par f pour y insérer n'importe quelle expression entre accolades. C'est la façon la plus courte de construire du texte ; format() fonctionne toujours.
ton.string name = "kuro"
ton.int age = 21
print(f"Salut {name}, l'an prochain tu auras {age + 1} ans !")
print(f"{len(name)} lettres, en majuscules : {name.upper()}")
print(f"Accolades : {{comme ça}}") // {{ et }} sont des accolades littérales
Chaînes brutes — les backticks délimitent une chaîne sans séquences d'échappement, qui peut tenir sur plusieurs lignes. Pratique pour du HTML, des expressions régulières et des chemins Windows :
ton.html page = `<div class="card">
<p>C:\temp\new n'est pas un retour à la ligne ici</p>
</div>`
Échappements dans les chaînes entre guillemets : \n \t \r \" \\ \0, et \u{1F680} / \u00e9 pour n'importe quel caractère Unicode (écrit en UTF-8).
Formater des nombres : fixed(3.14159, 2) donne "3.14", "7".padStart(3, "0") donne "007".