95 votes

Opérateur d'assignation dans le langage Go

Dernièrement, j'ai joué avec le nouveau langage de programmation de Google. Allez sur et je me demandais pourquoi l'opérateur d'affectation := a un côlon devant le signe égal = .

Y a-t-il une raison particulière pour laquelle les auteurs de la langue ont voulu utiliser name := "John" au lieu de name = "John" ?

5voto

Pravin Mishra Points 2544

Les deux sont les différentes techniques de déclaration de variables dans le langage Go.

var name = "John" // is a variable declaration 

ET

name := "John"   // is a short variable declaration. 

Une déclaration de variable courte est un raccourci pour une déclaration de variable régulière avec des expressions d'initialisation mais sans types.

Lire ci-dessous pour plus de détails :

Déclarations de variables

Déclarations courtes de variables

4voto

Webeng Points 5248

Contexte important pour la réponse :

:= est un opérateur raccourci pour initialiser une variable. Dans Allez sur les opérations suivantes sont équivalentes :

var myNumb String = "one"
myNumb := "one"

Réponse :

La question implicite est maintenant : "Pourquoi Go a conçu la notation sténographique := d'avoir un : avant le = ?". La raison en est d'éviter les fautes de frappe fréquentes. Si l'opérateur d'affectation abrégé était simplement = alors vous pourriez vous retrouver dans la situation suivante :

var myNumb String = "one"
myNumb = "two"

Maintenant, est-ce que l'utilisateur qui a créé ce code avait l'intention de réaffecter two a myNumb ou a-t-il fait une erreur de frappe myNumb au lieu de taper correctement myNumbTwo ? En incluant les deux points dans := le programmeur devrait commettre deux erreurs (oublier les deux points et oublier les var ) pour qu'il y ait un bogue, ce qui diminue la probabilité de le faire. radicalement .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X