Il n'y a pas beaucoup de façons d'écrire le langage Go, et le style d'écriture est fixé dans une certaine mesure, donc il peut être implémenté simplement. Il est relativement facile de comprendre les spécifications linguistiques d'hier.
Un langage de compilation est un langage qui ** compile (traduit) tout le code dans un langage machine ou un langage intermédiaire à la fois ** avant l'exécution. Le langage de compilation a la particularité que la méthode de description est stricte **, mais il a la particularité que ** le traitement est rapide ** car il est converti en langage machine dans un batch et traité par l'ordinateur. On dit que le langage Go est ** rapide à compiler **.
En langage Go, vous devez spécifier le type à l'avance lors de l'écriture d'un programme **. En compilant statiquement à l'avance, il n'est pas nécessaire de vérifier la biosynthèse de type lors de l'exécution du programme, et la vitesse de traitement est augmentée. Il vérifie également les types au moment de la compilation, vous pouvez donc vérifier les ** erreurs d'alignement de type **. Les langages Java et C ont cette fonctionnalité.
D'autre part, il existe des langages typés dynamiquement qui ne tapent pas lors de l'écriture de programmes. JavaScript, Ruby, Python, etc. sont des langages typés dynamiquement. Ce ne sont pas rapides, mais la quantité d'écriture dans le programme est faible et le coût d'apprentissage de l'écriture est faible, vous pouvez donc écrire du code de manière intuitive.
C'est une fonction qui démarre le traitement dans un thread virtuel et est une image d'un thread léger. Cela peut être réalisé en appelant la fonction avec le mot-clé go.
func main() {
go f() //Appeler une routine de départ
}
func f() {
// some task
}
Goroutine ne peut pas définir une valeur de retour pour une fonction. Dans la routine go, il est ignoré lorsque le processus est terminé.
Comme il n'est pas possible de détecter si un travail est en cours d'exécution ou abandonné en utilisant uniquement la routine go, la gestion des erreurs ne peut pas être effectuée en cas de comportement involontaire. De plus, comme il n'y a pas de valeur de retour, vous ne pouvez pas recevoir la valeur traitée à la suite du travail. Par conséquent, une fonction appelée canal permet ** l'échange de données entre les routines go **. En décrivant la réception du canal, ** il attendra que la valeur soit envoyée **. Les canaux peuvent également avoir des ** tampons **, et la spécification d'un tampon lors de la création détermine le nombre de données qu'un canal peut avoir. (La valeur par défaut est 0) L'envoi d'une valeur au-delà du tampon entraînera un blocage de l'envoi.
Le langage Go a une grande collection de bibliothèques standard.
Le langage Go vous permet de créer des binaires pour différents systèmes d'exploitation et architectures. Ceci peut être réalisé en spécifiant les variables d'environnement GOOS et GOARCH comme indiqué ci-dessous.
# Windows(32bit)Pour
$ GOOS=windows GOARCH=386 go build
# Linux(Pour 64 bits)
$ GOOS=linux GOARCH=amd64 go build
Les programmes écrits dans le langage Go sont essentiellement générés sous forme de binaires uniques pouvant être exécutés indépendamment. Une fois compilé, il n'est pas nécessaire de gérer le runtime et les dépendances requises pour le langage LL (un langage qui peut réaliser le traitement avec une courte description), et il n'est pas nécessaire de préparer un environnement d'exploitation.