Caractéristiques du langage Go

Aperçu

Conception de la langue et grammaire

Facile

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.

Langage de compilation

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 **.

Typage statique

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.

Programmation parallèle

Passez à la routine

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é.

canal

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.

Bibliothèque standard riche

Le langage Go a une grande collection de bibliothèques standard.

Compilation croisée binaire unique

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.

Recommended Posts

Caractéristiques du langage Go
Bonjour tout le monde avec toutes les fonctionnalités du langage Go
100 traitement du langage knock-75 (en utilisant scicit-learn): poids de l'identité
Principales caractéristiques de ChainMap
Un expert Ruby a appris la grammaire de base du langage Go
Caractéristiques du langage de programmation [Memo]
go Apprentissage des langues notes diverses 1
[Golang] À propos de la chaîne linguistique Go
À propos des fonctionnalités de Python
[Golang] Principes de base du langage Go À propos du récepteur de valeur et du récepteur de pointeur
Essayez d'implémenter Yuma en langage Go
Train_test_split du montant de fonction détenu par dict
Caractéristiques de pd.NA dans Pandas 1.0.0 (RC0)
À propos du type de base de Go
10 fonctions du "langage avec batterie" python
Maîtrisez les riches fonctionnalités d'IPython
100 traitement du langage knock-59: analyse de la formule S
Résumé du comportement de conversion de go json
Maîtriser les riches fonctionnalités d'IPython (2)
Caractéristiques du lien symbolique et dur
Ecrire un test en langue GO + gin
Résumé du traitement multi-processus du langage de script
Faites quelque chose orienté objet dans le langage GO
[GO language] Organisez le comportement de l'importation dans des endroits autres que GOPATH
J'ai fait une sorte d'outil de traitement d'image simple en langage Go.
Ce que les utilisateurs de Java ont pensé d'utiliser le langage Go pendant une journée
J'ai fait go language pour api et la configuration minimum de react pour le front
Réponses et impressions de 100 chocs de traitement linguistique - Partie 1
100 traitement du langage knock-91: Préparation des données d'analogie
Traitement du langage 100 knocks-44: Visualisation des arbres dépendants
Traiter le nom de la carte Yugioh en langage naturel --Yugiou Data Science 2. PNL
100 traitement de langue knock-22: Extraction du nom de la catégorie
Réponses et impressions de 100 chocs de traitement de la langue - Partie 2
Quel type de langage de programmation est Python?
Remarques sur l'entrée / sortie standard de Go
Proposition d'un nouveau framework de langage de bouclier linguistique
100 Language Processing Knock-26: suppression du balisage accentué
[Golang] Go les bases de la langue Qu'est-ce que Goroutine?
[GO language] Lisons le fichier YAML
Résumé des pages d'hébergement de la bibliothèque par langue
Visualisation de corrélation entre la quantité de caractéristiques et la variable objective
[Golang] À propos du producteur et consommateur de langue Go
J'ai comparé la vitesse de l'écho du framework web en langage go et du flask du framework web python