Tutoriel pour apprendre le langage Go par l'exemple Par Clément Keirua Date de

Tutoriel pour apprendre le langage Go par l'exemple Par Clément Keirua Date de publication : 17 avril 2017 Go est un langage de programmation open source conçu pour permettre de réaliser des programmes simples, rapides et fiables. Le Go par l'exemple est une introduction pratique au Go avec des programmes d'exemple annotés. Regardez le premier exemple ou naviguez dans la liste complète ci-contre. Commentez Tutoriel pour apprendre le langage Go par l'exemple par Clément Keirua I - Hello World..............................................................................................................................................................4 II - Valeurs....................................................................................................................................................................4 III - Variables................................................................................................................................................................5 IV - Constantes............................................................................................................................................................6 V - Déclarations courtes..............................................................................................................................................7 VI - For.........................................................................................................................................................................7 VII - If/Else................................................................................................................................................................... 8 VIII - Switch..................................................................................................................................................................9 IX - Tableaux..............................................................................................................................................................11 X - Slices....................................................................................................................................................................12 XI - Maps................................................................................................................................................................... 15 XII - Range.................................................................................................................................................................16 XIII - Fonctions...........................................................................................................................................................17 XIV - Valeurs de retour multiples.............................................................................................................................. 18 XV - Fonctions variadiques....................................................................................................................................... 20 XVI - Fermetures....................................................................................................................................................... 21 XVII - Récursivité.......................................................................................................................................................22 XVIII - Pointeurs.........................................................................................................................................................23 XIX - Structures......................................................................................................................................................... 24 XX - Méthodes...........................................................................................................................................................26 XXI - Interfaces..........................................................................................................................................................27 XXII - Erreurs.............................................................................................................................................................29 XXIII - Goroutines...................................................................................................................................................... 31 XXIV - Canaux...........................................................................................................................................................32 XXV - Canaux avec buffer.........................................................................................................................................33 XXVI - Synchronisation des canaux..........................................................................................................................34 XXVII - Direction des canaux.................................................................................................................................... 35 XXVIII - Select........................................................................................................................................................... 36 XXIX - Timeouts.........................................................................................................................................................37 XXX - Opérations non bloquantes sur les canaux....................................................................................................38 XXXI - Fermer des canaux........................................................................................................................................40 XXXII - Range sur des canaux................................................................................................................................. 41 XXXIII - Timers...........................................................................................................................................................42 XXXIV - Tickers..........................................................................................................................................................43 XXXV - Worker Pools................................................................................................................................................ 44 XXXVI - Limitation de débit....................................................................................................................................... 45 XXXVII - Compteurs atomiques.................................................................................................................................47 XXXVIII - Mutex......................................................................................................................................................... 49 XXXIX - Goroutines à états.......................................................................................................................................51 XL - Tri....................................................................................................................................................................... 54 XLI - Tri par des fonctions.........................................................................................................................................55 XLII - Panic................................................................................................................................................................ 56 XLIII - Defer............................................................................................................................................................... 57 XLIV - Fonctions sur les collections..........................................................................................................................58 XLV - Fonctions sur les chaînes............................................................................................................................... 62 XLVI - Formatage de chaînes................................................................................................................................... 63 XLVII - Expressions régulières.................................................................................................................................. 66 XLVIII - JSON............................................................................................................................................................ 69 XLIX - Dates.............................................................................................................................................................. 72 L - Temps UNIX.........................................................................................................................................................74 LI - Formatage et analyse de dates..........................................................................................................................75 LII - Nombres aléatoires............................................................................................................................................ 77 LIII - Extraction de nombres......................................................................................................................................78 LIV - Analyse d'URL.................................................................................................................................................. 80 LV - Empreinte SHA1................................................................................................................................................ 82 LVI - Encodage Base64.............................................................................................................................................83 LVII - Lire des fichiers................................................................................................................................................84 LVIII - Écrire dans des fichiers.................................................................................................................................. 86 - 2 - Copyright ® 2017 KeiruaProd. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. https://go.developpez.com/tutoriels/go-par-l-exemple/ Tutoriel pour apprendre le langage Go par l'exemple par Clément Keirua LIX - Filtres de ligne..................................................................................................................................................88 LX - Arguments de ligne de commande................................................................................................................... 89 LXI - Options de ligne de commande....................................................................................................................... 90 LXII - Variables d'environnement...............................................................................................................................92 LXIII - Lancer des processus.................................................................................................................................... 94 LXIV - Exécuter des processus.................................................................................................................................96 LXV - Signaux............................................................................................................................................................97 LXVI - Sortie.............................................................................................................................................................. 98 LXVII - Remerciements..............................................................................................................................................99 - 3 - Copyright ® 2017 KeiruaProd. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. https://go.developpez.com/tutoriels/go-par-l-exemple/ Tutoriel pour apprendre le langage Go par l'exemple par Clément Keirua I - Hello World Notre premier programme va afficher le classique « hello world » Voici le code source complet. package main import "fmt" func main() { fmt.Println("hello world") } Exécuter le code en ligne Pour exécuter le programme, mettez le code dans le fichier hello-world.go et lancez go run. $ go run hello-world.go hello world Parfois on veut compiler pour obtenir un exécutable. Nous pouvons faire cela avec go build. $ go build hello-world.go $ ls hello-world hello-world.go On peut ensuite exécuter le fichier binaire $ ./hello-world hello world Maintenant que l'on sait exécuter et compiler des programmes en Go, apprenons-en plus sur le langage. II - Valeurs Go a plusieurs types de valeurs, incluant les chaînes de caractères, les entiers, les nombres flottants, les booléens, etc. Voici quelques exemples basiques. Les chaînes de caractères, que l'on peut concaténer avec +. fmt.Println("go" + "lang") Les entiers et les flottants. fmt.Println("1+1 =", 1+1) fmt.Println("7.0/3.0 =", 7.0/3.0) Les booléens, avec les opérateurs booléens tels qu'on les attend. fmt.Println(true && false) fmt.Println(true || false) fmt.Println(!true) } Code complet package main import "fmt" Exécuter le code en ligne - 4 - Copyright ® 2017 KeiruaProd. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. https://go.developpez.com/tutoriels/go-par-l-exemple/ Tutoriel pour apprendre le langage Go par l'exemple par Clément Keirua Code complet func main() { fmt.Println("go" + "lang") fmt.Println("1+1 =", 1+1) fmt.Println("7.0/3.0 =", 7.0/3.0) fmt.Println(true && false) fmt.Println(true || false) fmt.Println(!true) } $ go run values.go golang 1+1 = 2 7.0/3.0 = 2.3333333333333335 false true false III - Variables En Go, les variables sont déclarées explicitement et utilisées par le compilateur, par exemple pour vérifier que le type de retour des appels de fonction est correct. var déclare une ou plusieurs variables. var a string = "initial" fmt.Println(a) On peut déclarer plusieurs variables à la fois var b, c int = 1, 2 fmt.Println(b, c) Go déduira le type des variables non initialisées var d = true fmt.Println(d) Les variables déclarées sans être initialisées ont une valeur nulle. Par exemple, la valeur nulle d'un int est 0. var e int fmt.Println(e) La syntaxe := est un raccourci pour déclarer et initialiser une variable, par exemple pour var f string = "short" ici. f := "short" fmt.Println(f) } Code complet package main import "fmt" func main() { Exécuter le code en ligne - 5 - Copyright ® 2017 KeiruaProd. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. https://go.developpez.com/tutoriels/go-par-l-exemple/ Tutoriel pour apprendre le langage Go par l'exemple par Clément Keirua Code complet var a string = "initial" fmt.Println(a) var b, c int = 1, 2 fmt.Println(b, c) var d = true fmt.Println(d) var e int fmt.Println(e) f := "short" fmt.Println(f) } $ go run variables.go initial 1 2 true 0 short IV - Constantes Go supporte les constantes de caractères, chaînes de caractères, booléens et valeurs numériques const déclare une valeur constante. const s string = "constant" func main() { fmt.Println(s) Le mot-clé const peut apparaître à chaque endroit où l'on peut mettre le mot-clé var const n = 500000000 Les expressions constantes réalisent les opérations arithmétiques avec une précision arbitraire. const d = 3e20 / n fmt.Println(d) Une constante numérique n'a pas de type jusqu'à ce qu'on lui en donne un, par exemple via un cast explicite fmt.Println(int64(d)) On peut donner un type à un nombre en l'utilisant dans un contexte qui en requiert un, tel qu'une affectation ou un appel de fonction. Par exemple ici, math.Sin attend un float64. fmt.Println(math.Sin(n)) } Code complet package main import "fmt" import "math" const s string = "constant" Exécuter le code en ligne - 6 - Copyright ® 2017 KeiruaProd. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. https://go.developpez.com/tutoriels/go-par-l-exemple/ Tutoriel pour apprendre le langage Go par l'exemple par Clément Keirua Code complet func main() { fmt.Println(s) const n = 500000000 const d = 3e20 / n fmt.Println(d) fmt.Println(int64(d)) fmt.Println(math.Sin(n)) } $ go run constant.go constant 6e+11 600000000000 -0.28470407323754404 V - Déclarations courtes x := val est la version courte pour var x type = val. func main() { x := "Hello var" fmt.Println(x) } Code complet package main import "fmt" func main() { x := "Hello var" fmt.Println(x) } Exécuter le code en ligne $ go run short-declarations.go Hello var VI - For for est la seule manière de faire une boucle en Go. Voici trois types basiques de boucles for. La plus simple, avec une unique condition. i := 1 for i <= 3 { fmt.Println(i) i = i + 1 } La boucle for classique, en trois étapes : initialisation/condition/incrémentation. for j := 7; j <= 9; j++ { fmt.Println(j) } - 7 - Copyright ® 2017 KeiruaProd. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. https://go.developpez.com/tutoriels/go-par-l-exemple/ Tutoriel pour apprendre le langage Go par l'exemple par Clément Keirua for sans condition va boucler indéfiniment, jusqu'à ce qu'on break pour en sortir, ou qu'un return fasse sortir de la fonction correspondante. for { fmt.Println("loop") break } } Code complet package main import "fmt" func main() { i := 1 for i <= 3 { fmt.Println(i) i = uploads/S4/ go-par-l-exemple.pdf

  • 28
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Dec 04, 2021
  • Catégorie Law / Droit
  • Langue French
  • Taille du fichier 0.7640MB