GoGoPrimer
< Retour au module

Syntaxe de base

Chaînes de caractères et formatage

Une `string` en Go est une séquence de octets encodée en UTF-8, immuable : on ne peut pas modifier un caractère en place, on construit toujours une nouvelle chaîne. La concaténation se fait avec `+`.

firstName := "Ada"
lastName := "Lovelace"
fullName := firstName + " " + lastName
fmt.Println(fullName) // Ada Lovelace

`fmt.Println` affiche des valeurs séparées par des espaces suivies d'un retour à la ligne. `fmt.Printf` (formaté) et `fmt.Sprintf` (retourne une string plutôt que d'afficher) utilisent des verbes commençant par `%` pour contrôler précisément la sortie.

name := "Ada"
age := 36
fmt.Printf("%s a %d ans\n", name, age)
// Ada a 36 ans
 
message := fmt.Sprintf("%s a %d ans", name, age)
// message contient la chaîne, sans l'afficher

Les verbes les plus utilisés : `%s` pour une chaîne, `%d` pour un entier, `%f` pour un nombre à virgule (`%.2f` pour deux décimales), `%t` pour un booléen, et `%v` qui affiche n'importe quelle valeur avec sa représentation par défaut. Ce dernier est très utile pour explorer une structure de données pendant le développement.

`go vet`, l'analyseur statique livré avec Go, détecte les incohérences entre les verbes utilisés dans `Printf` et les arguments fournis (par exemple `%d` sur une string). C'est une erreur fréquente qu'il vaut la peine de laisser l'outillage attraper pour toi.

À toi de jouer

Avec `city := "Paris"` et `temperature := 18.4`, utilise `fmt.Printf` pour afficher : `Paris : 18.4°C` avec une seule décimale.

package main
 
import "fmt"
 
func main() {
city := "Paris"
temperature := 18.4
// ton Printf ici
}