Partage de technologie

Introduction au langage Go (1)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Mécanisme de recherche des packages de dépendances Go Modules
  • Les dépendances tierces téléchargées sont stockées dans $GOPATH/pkg/mod Vers le bas
  • Le fichier exécutable généré par go install est stocké dans $GOPATH/binVers le bas
  • Cela dépend de l'ordre de recherche :
    • Liste de travail
    • $GOPATH/pkg/mod
    • $GOPATH/src

1. Bases du langage Go

1.Identifiants et mots-clés

1.1 Méthode de dénomination

La dénomination des variables go, des constantes, des types personnalisés, des packages et des fonctions doit suivre les règles suivantes :

Le premier caractère peut être任意Unicode字符ou下划线

Les parties autres que le premier caractère peuvent être des caractères Unicode, des traits de soulignement ou des chiffres.

Il n'y a pas de limite à la longueur du nom

Théoriquement, le nom peut contenir des caractères chinois, voire tous les caractères chinois, mais en pratique, ne le faites pas.

1.2 Mots-clés
casserdéfautfonctioninterfacesélectionner
casreporterallercartestructure
Chanautrealler àemballerchanger
constantesigammetapercontinuer
pourimporterretourtomber dansvar
1.3 Mots réservés

•constante

true false iota nil

•type de données

int int8 int16 int32 int64

uint uint8 uint16 uint32 uint64

float32 float64

complex128 complex64

byte rune string

bool error uintptr

•fonction

make len cap new append copy

close delete complex real imag panic recover

1.4 Variables
1.4.1 Type de variable
taperAller aux types de variablessortie fmt
entierint int8 int16 int32 int64 uint uint8 uint16 uint32 uint64%d
point flottantfloat32 float64%f %e %g
plurielcomplex128 complex64%v
booléenbool%t
aiguilleuintptr%d
Citationmap slice channel%v
octetbyte%d
N'importe quel caractèrerune%d
chaînestring%s
erreurerror%v
1.4.2 Initialisation des variables
  • S'il n'est pas explicitement initialisé après la déclaration, le type numérique est initialisé à O, le type chaîne est initialisé à une chaîne vide et le type booléen est initialisé à false.

    Les types de référence, les fonctions, les pointeurs et les interfaces sont initialisés à zéro

    • var a string=“chine”
    • var a,b int=3,7
    • var a="china", tapez l'inférence
    • var a,b=“chine”, 7
  • Les variables (variables non globales) à l'intérieur des fonctions peuvent être déclarées et initialisées par : =

    • a:=3
  • Le trait de soulignement indique une variable anonyme

    • _=2+4
  • Les variables anonymes n'occupent pas d'espace de noms et n'allouent pas de mémoire, elles peuvent donc être réutilisées

1,5 constantes

Les constantes doivent se voir attribuer une valeur lorsqu'elles sont définies et leur valeur ne peut pas être modifiée pendant l'exécution du programme.

const PI float32=3.14

const(
	PI=3.14
	E=2.71
)

const(
  a=100
  b	//100,跟上一行的值相同
  c	//100,跟上一行的值相同
)

const(
	a = iota	//0
  b					//1
  c					//2
  d					//3
)

const(
	a = iota	//0
  b					//1
  _					//2
  d					//3
)

const(
	a = iota	//0
  b	= 30		//30
  c	= iota	//2
  d					//3
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
1.6 Littéraux

Littéral : Le nom de la variable n'apparaît pas, mais la valeur apparaît directement.Les littéraux des types de base sont équivalents aux constantes

Différents types de données ne peuvent pas être comparés, à l'exception des littéraux

fmt.Printf("9tn"04 ==4.00//用到了整型字面量和浮点型字面量
fmt.Printf("%vn".4i//虚数字面量0.4i
fmt.Printf("%tn", "u4f17'=='//Unicode和rune字面量
fmt.Printf("Hello nWorldn!n"//字符串字面量
  • 1
  • 2
  • 3
  • 4
1.7 Périmètre variable
variables globales
var (
  A=3	//全局变量,大写字母开头,所有地方都可以访问,跨package访问时需要带上package名称
	b=4	//全局变量,小写字母开头,本package内都可以访问
  • 1
  • 2
  • 3
  • 4
variables locales
func fool{
	b:=5 //局部变量,仅本函数内可以访问。内部声明的变量可以跟外部声明的变量有冲突,以内部的为准
  
	{
  	b:=6	//仅小圈定的作用域内可以访问,可以跟外部的变量有冲突
	}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
1.8 Commentaires et godoc
1.8.1 Forme des commentaires
  • Commentaires sur une seule ligne.Commencer avec //
  • Commentaires sur plusieurs lignes. Plusieurs lignes consécutives commencent par // ou utilisez /* avant le paragraphe et */ à la fin du paragraphe.
  • Aucune ligne vide ne peut apparaître entre les commentaires multilignes
  • REMARQUE : Attirant l'attention, TODO : Nécessite une optimisation à l'avenir, Obsolète : Il est fortement recommandé de ne pas utiliser de variables ou de fonctions.
  • Vous pouvez écrire du code go en ajoutant une indentation avant la ligne de commentaire.
1.8.2 Position des commentaires
  • Commentaires sur le paquet. Au-dessus du colis xxx. Un package n'a besoin que d'écrire les commentaires du package à un seul endroit, généralement un doc.go dédié.

    Il n'y a qu'une seule ligne packagexxx et des commentaires sur le package.

  • Commentaires sur la structure.ci-dessus, tapez la structure xxx

  • Commentaires de fonction.au-dessus de la fonction xxx()

  • Commentaires de ligne.au-dessus ou à droite de la ligne

1.8.3 aller à la documentation
  • go doc est la commande fournie avec go
  • aller doc entrée classe/util
1.8.4 godoc
  • godoc peut exporter une version Web du document d'annotation pour le code du projet.
    • Vous devez d'abord installer golang.org/x/tools/cmd/godoc
    • Démarrer http:godoc -http=:6060
    • Utilisez un navigateur pour visiter : http://127.0.0.1:6060/pkg/go-course/entrance class