1. Université Badji Mokhtar Annaba
Faculté des sciences de l’ingéniorat
Département de l’informatique
Spécialité: ILC
Sujet de l’exposé:
Préparé par:
Mamadji Rostom
Année: 2018-2019
GO Language
2. Plan du travail :
Historique
Pourquoi GO!
Installation
Spécificités
Programmation avec GO
Projets utilisant go
Conclusion
3. Historique
Projet interne Google à partir de 2007
inventé par Rob Pike et Ken Thompson
Open source depuis 2009
Aujourd’hui, version 1.12.6
5. Souplesse d’un langage interprété
combine le meilleur du langage statique et
du langage dynamique.
Efficacité et sécurité d’un langage
compilé
Moderne : réseau et multi-processeurs
7. Portable : FreeBSD (v8 et sup.)
Linux(noyau 2.6.23 et sup.),
Mac OS X (v10.6 et sup.)
Windows (XP et sup.)
8. installation
Ubuntu :
Tappez :
1- sudo apt-get update
2 -sudo apt-get -y upgrade.
3 -sudo apt-get install golang
Windows :
Telecharger GO depuis le site officiel
https://golang.org/dl/
9. spécificités
Langage multi paradigmes:
programmation concurrente , impérative
et structurée.
Compatible avec la programmation
système et application.
Pas d’exceptions (try …catch )
10. L’Absence de la notion de classes (GO est un
langage procédural).
Pas d’heritage ni de surcharge .
Garabage Collected (ramasse-miettes)
Valeurs de retour multiples Go supporte de base
les valeurs de retour multiples. On s'en sert
souvent en Go, par exemple pour renvoyer le
résultat et la valeur d'erreur d'une fonction.
12. commandes
Condition : if {……} else{…….}
Boucle : for (uniquement)
func main() {
for i:=0; i < 10; i++
{ fmt.Print(i, " ") }}
Nous n'avons pas de boucle While séparée en Go. Nous
pouvons simplement utiliser la variation pour obtenir
le même résultat.
func main() {
i := 0
for i < 10 { fmt.Print(i, " ") i++ } }
14. Mots cles
Const : constantes
Default :valeur par defaut
func : declarer une fonction
interface:des collections nommées de
signatures de méthodes.
Struct : collection de champs typés
defer :pour liberer les ressources
15. Exécution
Pour exécuter le programme, mettez le
code dans un 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
17. Variables
En Go, les variables sont déclarées
explicitement et utilisées par le compilateur.
var déclare une ou plusieurs variables:
var a string = "initial"
fmt.Println(a)
18. Fonctions
func plusPlus(a, b, c int) int
{ return a + b + c } //declaration
func main() {
res = plusPlus(1, 2, 3)
fmt.Println("1+2+3=",res) } //appel
$ go run functions.go 1+2+3 =6
19. Méthodes
Go supporte des méthodes définies dans les
structures.
Les méthodes peuvent être définies soit pour un
pointeur, soit pour une valeur de type receveur.
Voici un exemple avec une valeur:
func (r rect) perim() int { return 2*r.width
+ 2*r.height }
func main() { r := rect{width: 10, height: 5}
fmt.Println("perim:", r.perim()
21. Bibliothèque
Comme le C, Go exige d'indiquer quelles
bibliothèques on utilisera.
À la différence du C, il considère la
compilation en erreur si cette bibliothèque
n'est pas utilisée.
Le compilateur Go ne contient en effet pas
de messages d'avertissements par choix
des concepteurs : « Il n'est pas
indispensable de signaler ce qu'il ne serait
pas indispensable de corriger »
22. Principales bibliothèques :
fmt fournit 19 fonctions de mise en forme des
entrées-sorties dont Println, Print et Printf
io fournit des procédures d'entrées-sorties elles-
mêmes, dont ReadFull, Seek, WriteString...
os interface le système, par exemple pour ouvrir et
fermer des fichiers, dont OpenFile, ReadAt...
strings fournit environ 50 fonctions traitant des
chaînes de caractères
time fournit des outils de mesure des temps
d'exécution, dont time.Now et time.Since()
24. Conclusion
Un objectif de Go est donné par Rob Pike,
l'un de ses trois créateurs, qui dit à propos
des développeurs inexpérimentés:
« Ils ne sont pas capables de comprendre un
langage brillant, mais nous voulons les
amener à réaliser de bons programmes.
Ainsi, le langage que nous leur donnons
doit être facile à comprendre et facile à
adopter »
Notes de l'éditeur
Un ramasse-miettes, ou récupérateur de mémoire, ou glaneur de cellules est un sous-système informatique de gestion automatique de la mémoire. Il est responsable du recyclage de la mémoire préalablement allouée puis inutilisée.