Κοινή χρήση τεχνολογίας

Εισαγωγή στη γλώσσα Go (1)

2024-07-12

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

Μηχανισμός αναζήτησης πακέτων εξάρτησης Go Modules
  • Οι εξαρτήσεις τρίτων που έχετε λάβει αποθηκεύονται στο $GOPATH/pkg/mod Κάτω
  • Το εκτελέσιμο αρχείο που δημιουργήθηκε από το go install αποθηκεύεται στο $GOPATH/binΚάτω
  • Εξαρτάται από τη σειρά αναζήτησης:
    • Λίστα εργασιών
    • $GOPATH/pkg/mod
    • $GOPATH/src

1. Βασικά στοιχεία της γλώσσας Go

1.Αναγνωριστικά και λέξεις-κλειδιά

1.1 Μέθοδος ονομασίας

Η ονομασία των μεταβλητών go, των σταθερών, των προσαρμοσμένων τύπων, των πακέτων και των συναρτήσεων πρέπει να ακολουθεί τους ακόλουθους κανόνες:

Ο πρώτος χαρακτήρας μπορεί να είναι任意Unicode字符ή下划线

Τα μέρη εκτός από τον πρώτο χαρακτήρα μπορεί να είναι χαρακτήρες Unicode, κάτω παύλες ή αριθμοί

Δεν υπάρχει όριο στο μήκος του ονόματος

Θεωρητικά, το όνομα μπορεί να έχει κινεζικούς χαρακτήρες ή ακόμα και όλους τους κινέζικους χαρακτήρες, αλλά στην πράξη, μην το κάνετε αυτό.

1.2 Λέξεις-κλειδιά
ΔιακοπήΠροκαθορισμένοfuncδιεπαφήεπιλέγω
υπόθεσηαναβάλλωπηγαίνωχάρτηςstruct
chanαλλούπαω σεπακέτοδιακόπτης
συνθανεύροςτύποςνα συνεχίσει
ΓιαεισαγωγήΕΠΙΣΤΡΟΦΗπτώσηvar
1.3 Δεσμευμένες λέξεις

•συνεχής

true false iota nil

•είδος δεδομένων

int int8 int16 int32 int64

uint uint8 uint16 uint32 uint64

float32 float64

complex128 complex64

byte rune string

bool error uintptr

•λειτουργία

make len cap new append copy

close delete complex real imag panic recover

1.4 Μεταβλητές
1.4.1 Τύπος μεταβλητής
τύποςΜεταβείτε τύπους μεταβλητώνΈξοδος fmt
ακέραιος αριθμόςint int8 int16 int32 int64 uint uint8 uint16 uint32 uint64%ρε
κινητής υποδιαστολήςfloat32 float64%f %e %g
πληθυντικόςcomplex128 complex64%v
booleanbool%t
δείκτηςuintptr%ρε
Παραθέτω, αναφοράmap slice channel%v
ψηφιόλεξηbyte%ρε
οποιονδήποτε χαρακτήραrune%ρε
σειράstring%μικρό
λάθοςerror%v
1.4.2 Αρχικοποίηση μεταβλητής
  • Εάν δεν αρχικοποιηθεί ρητά μετά τη δήλωση, ο αριθμητικός τύπος αρχικοποιείται σε O, ο τύπος συμβολοσειράς αρχικοποιείται σε μια κενή συμβολοσειρά και ο τύπος Boolean αρχικοποιείται σε false.

    Οι τύποι αναφοράς, οι συναρτήσεις, οι δείκτες και οι διεπαφές αρχικοποιούνται στο μηδέν

    • var a string = "Κίνα"
    • var a,b int=3,7
    • var a="china", συμπεράσματα τύπου
    • var a,b=«Κίνα», 7
  • Οι μεταβλητές (μη καθολικές μεταβλητές) μέσα στις συναρτήσεις μπορούν να δηλωθούν και να αρχικοποιηθούν με: =

    • α:=3
  • Η υπογράμμιση υποδεικνύει ανώνυμη μεταβλητή

    • _=2+4
  • Οι ανώνυμες μεταβλητές δεν καταλαμβάνουν χώρο ονομάτων και δεν εκχωρούν μνήμη, ώστε να μπορούν να επαναχρησιμοποιηθούν

1,5 σταθερές

Στις σταθερές πρέπει να εκχωρηθεί μια τιμή όταν ορίζονται και η τιμή τους δεν μπορεί να αλλάξει ενώ εκτελείται το πρόγραμμα.

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 Κυριολεκτικά

Literal: Το όνομα της μεταβλητής δεν εμφανίζεται, αλλά η τιμή εμφανίζεται απευθείας.Τα κυριολεκτικά των βασικών τύπων είναι ισοδύναμα με σταθερές

Δεν μπορούν να συγκριθούν διαφορετικοί τύποι δεδομένων, με εξαίρεση τα κυριολεκτικά

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 Μεταβλητό εύρος
καθολικές μεταβλητές
var (
  A=3	//全局变量,大写字母开头,所有地方都可以访问,跨package访问时需要带上package名称
	b=4	//全局变量,小写字母开头,本package内都可以访问
  • 1
  • 2
  • 3
  • 4
τοπικές μεταβλητές
func fool{
	b:=5 //局部变量,仅本函数内可以访问。内部声明的变量可以跟外部声明的变量有冲突,以内部的为准
  
	{
  	b:=6	//仅小圈定的作用域内可以访问,可以跟外部的变量有冲突
	}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
1.8 Σχόλια και godoc
1.8.1 Μορφή σχολίων
  • Σχόλια μονής γραμμής.Αρχισε με //
  • Σχόλια πολλαπλών γραμμών. Πολλές διαδοχικές γραμμές ξεκινούν με // ή χρησιμοποιούν το /* πριν από την παράγραφο και το */ στο τέλος της παραγράφου.
  • Δεν μπορούν να εμφανιστούν κενές γραμμές μεταξύ σχολίων πολλών γραμμών
  • ΣΗΜΕΙΩΣΗ: Τραβώντας την προσοχή, TODO: Χρειάζεται βελτιστοποίηση στο μέλλον, Καταργήθηκε: Συνιστάται ανεπιφύλακτα να μην χρησιμοποιείτε μεταβλητές ή συναρτήσεις.
  • Μπορείτε να γράψετε κώδικα go προσθέτοντας εσοχή πριν από τη γραμμή σχολίων.
1.8.2 Θέση σχολίων
  • Σχόλια πακέτου. Πάνω πακέτο xxx. Ένα πακέτο χρειάζεται μόνο να γράφει σχόλια πακέτου σε ένα μέρος, συνήθως σε ένα αποκλειστικό doc.go.

    Υπάρχει μόνο μία γραμμή πακέτοxxx και σχόλια για το πακέτο.

  • Σχόλια δομής.παραπάνω τύπου xxx struct

  • Σχόλια λειτουργίας.παραπάνω func xxx()

  • Γραμμικά σχόλια.πάνω ή στα δεξιά της σειράς

1.8.3 go doc
  • go doc είναι η εντολή που συνοδεύει το go
  • πηγαίνετε doc εισόδου τάξη/χρήση
1.8.4 godoc
  • Το godoc μπορεί να εξάγει μια διαδικτυακή έκδοση του εγγράφου σχολιασμού για τον κώδικα του έργου.
    • Πρέπει να εγκαταστήσετε το go first get golang.org/x/tools/cmd/godoc
    • Έναρξη http:godoc -http=:6060
    • Χρησιμοποιήστε ένα πρόγραμμα περιήγησης για να επισκεφθείτε: http://127.0.0.1:6060/pkg/go-course/entrance class