Condivisione della tecnologia

Introduzione alla lingua Go (1)

2024-07-12

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

Meccanismo di ricerca dei pacchetti di dipendenze di Go Modules
  • Le dipendenze di terze parti scaricate vengono archiviate in $GOPATH/pkg/mod Giù
  • Il file eseguibile generato da go install è archiviato in $GOPATH/binGiù
  • Dipende dall'ordine di ricerca:
    • Lista di lavoro
    • $GOPATH/pacchetto/mod
    • $GOPATH/origine

1. Nozioni di base sulla lingua Go

1.Identificatori e parole chiave

1.1 Metodo di denominazione

La denominazione di variabili, costanti, tipi personalizzati, pacchetti e funzioni go deve seguire le seguenti regole:

Il primo carattere può essere任意Unicode字符O下划线

Le parti diverse dal primo carattere possono essere caratteri Unicode, trattini bassi o numeri

Non c'è limite alla lunghezza del nome

In teoria, il nome può contenere caratteri cinesi, o anche tutti i caratteri cinesi, ma in pratica non farlo.

1.2 Parole chiave
rotturapredefinitofunzioneinterfacciaSelezionare
casodifferireandarecarta geograficastruttura
canalealtrovai apacchettointerruttore
costanteSeallinearetipoContinua
perimportareritornosfumarevarietà
1.3 Parole riservate

•costante

true false iota nil

•tipologia di dati

int int8 int16 int32 int64

uint uint8 uint16 uint32 uint64

float32 float64

complex128 complex64

byte rune string

bool error uintptr

•funzione

make len cap new append copy

close delete complex real imag panic recover

1.4 Variabili
1.4.1 Tipo di variabile
tipoVai ai tipi di variabileuscita fmt
numero interoint int8 int16 int32 int64 uint uint8 uint16 uint32 uint64%D
virgola mobilefloat32 float64%f %e %g
pluralecomplex128 complex64%invece
booleanobool%T
puntatoreuintptr%D
Citazionemap slice channel%invece
bytebyte%D
qualsiasi carattererune%D
cordastring%S
erroreerror%invece
1.4.2 Inizializzazione delle variabili
  • Se non viene inizializzato in modo esplicito dopo la dichiarazione, il tipo numerico viene inizializzato su O, il tipo stringa viene inizializzato su una stringa vuota e il tipo booleano viene inizializzato su false.

    I tipi di riferimento, le funzioni, i puntatori e le interfacce vengono inizializzati su zero

    • var a string=“cina”
    • variabile a,b int=3,7
    • var a="china", tipo inferenza
    • var a,b=“cina”, 7
  • Le variabili (variabili non globali) all'interno delle funzioni possono essere dichiarate e inizializzate da: =

    • un:=3
  • Il carattere di sottolineatura indica una variabile anonima

    • _=2+4
  • Le variabili anonime non occupano lo spazio dei nomi e non allocano memoria, quindi possono essere riutilizzate

1,5 costanti

Alle costanti deve essere assegnato un valore quando vengono definite e il loro valore non può essere modificato mentre il programma è in esecuzione.

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 Letterali

Letterale: il nome della variabile non viene visualizzato, ma il valore viene visualizzato direttamente.I letterali dei tipi base sono equivalenti alle costanti

Non è possibile confrontare diversi tipi di dati, ad eccezione dei valori letterali

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 Ambito variabile
variabili globali
var (
  A=3	//全局变量,大写字母开头,所有地方都可以访问,跨package访问时需要带上package名称
	b=4	//全局变量,小写字母开头,本package内都可以访问
  • 1
  • 2
  • 3
  • 4
variabili locali
func fool{
	b:=5 //局部变量,仅本函数内可以访问。内部声明的变量可以跟外部声明的变量有冲突,以内部的为准
  
	{
  	b:=6	//仅小圈定的作用域内可以访问,可以跟外部的变量有冲突
	}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
1.8 Commenti e godoc
1.8.1 Forma dei commenti
  • Commenti a riga singola.Iniziare con //
  • Commenti su più righe. Più righe consecutive iniziano con // oppure utilizzano /* prima del paragrafo e */ alla fine del paragrafo.
  • Non possono essere presenti righe vuote tra commenti su più righe
  • NOTA: attira l'attenzione, TODO: necessita di ottimizzazione in futuro, deprecato: si consiglia vivamente di non utilizzare variabili o funzioni.
  • Puoi scrivere il codice go aggiungendo un rientro prima della riga di commento.
1.8.2 Posizione dei commenti
  • Commenti sul pacchetto. Sopra il pacchetto xxx. Un pacchetto deve solo scrivere i commenti del pacchetto in un unico posto, solitamente un doc.go dedicato.

    C'è solo una riga packagexxx e commenti sul pacchetto.

  • Commenti sulla struttura.sopra digita la struttura xxx

  • Commenti sulle funzioni.sopra funzione xxx()

  • Commenti alla riga.sopra o a destra della riga

1.8.3 vai al documento
  • go doc è il comando fornito con go
  • vai doc ingresso classe/util
1.8.4 godoc
  • godoc può esportare una versione web del documento di annotazione per il codice del progetto.
    • Devi installarlo, vai prima a prendere golang.org/x/tools/cmd/godoc
    • Avvia http:godoc -http=:6060
    • Utilizzare un browser per visitare: http://127.0.0.1:6060/pkg/go-course/entrance class