2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Go-kieli, joka tunnetaan myös nimellä Golang, on Googlen suunnittelema avoimen lähdekoodin ohjelmointikieli. Se on suunniteltu tarjoamaan tehokas kehitysnopeus, hyvä suorituskyky, ytimekäs syntaksi ja tehokas standardikirjasto. Go-kieli sopii erityisen hyvin suurten hajautettujen järjestelmien ja mikropalveluarkkitehtuurien rakentamiseen. Tämä artikkeli auttaa sinua oppimaan Go-kielen tyhjästä, ja se kattaa perussyntaksin, lisäominaisuudet, parhaat käytännöt ja käytännön sovellukset.
Katso projektin lähdekoodi alareunasta
Ensin sinun on asennettava Go-ympäristö tietokoneellesi. Käy Go virallisella verkkosivustolla (https://golang.org/dl/) Lataa käyttöjärjestelmällesi sopiva Go-kielipaketti ja asenna se ohjeiden mukaan.
Mennä
tumma versio
- 1package main
- 2
- 3import "fmt"
- 4
- 5func main() {
- 6 fmt.Println("Hello, World!")
- 7}
Go-kieli tarjoaa erilaisia sisäänrakennettuja tietotyyppejä, mukaan lukien kokonaisluvut (int, int8, int16, int32, int64), liukulukutyypit (float32, float64), Boolen (bool), merkkijono (merkkijono) jne.
Go-kieli tukee if-lauseita, silmukoita, vaihtokäskyjä ja lykkäyskäskyjä ohjelman kulun ohjaamiseksi.
Funktiot ovat Go-kielen perussuoritusyksikkö. Funktiot voivat hyväksyä parametreja ja palauttaa tuloksia.
Mennä
tumma versio
- 1func add(x int, y int) int {
- 2 return x + y
- 3}
Go-kielessä osoittimia käytetään suoraan muistiosoitteiden käsittelyyn.käyttämällä*
ja&
Operaattori, saat muuttujan osoitteen ja osoitteen osoittaman arvon.
Mennä
tumma versio
- 1func increment(p *int) {
- 2 *p++
- 3}
Go:n käyttöliittymä määrittää joukon menetelmiä, jotka tyypin on toteutettava. Liitännät tekevät koodista joustavamman ja uudelleenkäytettävän.
Mennä
tumma versio
- 1type Shape interface {
- 2 Area() float64
- 3}
- 4
- 5type Circle struct {
- 6 Radius float64
- 7}
- 8
- 9func (c Circle) Area() float64 {
- 10 return math.Pi * c.Radius * c.Radius
- 11}
Go-kieli suosittelee virheen palautusarvojen käyttöä poikkeuksien käsittelemiseen.
Mennä
tumma versio
- 1func divide(x, y int) (int, error) {
- 2 if y == 0 {
- 3 return 0, errors.New("cannot divide by zero")
- 4 }
- 5 return x / y, nil
- 6}
Go-kielen samanaikaisuusmalli perustuu kevyisiin gorutiineihin ja kanaviin. Goroutine on käyttäjätason ketju Go-kielellä, ja kanavaa käytetään kommunikointiin ja synkronointiin gorutiinien välillä.
Mennä
tumma versio
- 1func say(s string) {
- 2 for i := 0; i < 5; i++ {
- 3 fmt.Println(s)
- 4 }
- 5}
- 6
- 7func main() {
- 8 go say("world") // 开始一个新的goroutine
- 9 say("hello")
- 10}
Kontekstia käytetään peruutussignaalien välittämiseen gorutiinien välillä, jolloin ohjelma voi lopettaa pitkään jatkuneet goritiinit sulavasti.
Mennä
tumma versio
- 1func main() {
- 2 ctx, cancel := context.WithCancel(context.Background())
- 3 go func() {
- 4 select {
- 5 case <-ctx.Done():
- 6 fmt.Println("operation canceled")
- 7 case <-time.After(time.Second * 3):
- 8 fmt.Println("operation completed")
- 9 }
- 10 }()
- 11 time.Sleep(time.Second)
- 12 cancel()
- 13}
Go-kieli suosittelee koodin järjestämiseen modulaarista lähestymistapaa. Jokainen hakemisto edustaa pakettia ja määrittelee siinä yhden tai useamman .go-tiedoston.
Go-moduulijärjestelmä (go mod
) käytetään projektin ulkoisten riippuvuuksien hallintaan.käyttäägo get
jago mod tidy
Komennot lisätä ja järjestää riippuvuuksia.
Go-kielessä on sisäänrakennettu tehokas testauskehys, käytätesting
paketti testitapausten kirjoittamiseen.
Mennä
tumma versio
- 1import (
- 2 "testing"
- 3)
- 4
- 5func TestAdd(t *testing.T) {
- 6 tests := []struct {
- 7 x, y, want int
- 8 }{
- 9 {2, 2, 4},
- 10 {1, 3, 4},
- 11 {0, 0, 0},
- 12 }
- 13 for _, tt := range tests {
- 14 got := add(tt.x, tt.y)
- 15 if got != tt.want {
- 16 t.Errorf("add(%d, %d) = %d; want %d", tt.x, tt.y, got, tt.want)
- 17 }
- 18 }
- 19}
käyttäägo build
Käytä komentoa suoritettavan tiedoston luomiseengo install
Asenna projekti sisään$GOPATH/bin
hakemistoon järjestelmäpuheluiden helpottamiseksi.
Go-kieltä käytetään laajasti taustapalveluissa, verkko-ohjelmoinnissa, mikropalveluarkkitehtuurissa, DevOps-työkaluissa, tietokannassa, väliohjelmistossa ja muissa skenaarioissa.
Go-kielen korkea samanaikaisuus tekee siitä ihanteellisen valinnan mikropalvelujen rakentamiseen.
Go-kielen vakiokirjasto tarjoaa monipuolisen verkkoohjelmointirajapinnan, mukaan lukien HTTP-palvelin, asiakas, WebSocket, TCP/IP jne.
Go-kielellä on nopea käännösnopeus ja vahva siirrettävyys, ja se soveltuu DevOps-työkalujen, kuten kontin orkestroinnin, jatkuvan integroinnin ja jatkuvan käyttöönoton työkalujen, kehittämiseen.
Go-kielestä on vähitellen tullut yksi nykyaikaisen ohjelmistokehityksen pääkielistä tiiviin syntaksin, tehokkaan standardikirjaston ja tehokkaan samanaikaisuusmallin ansiosta. Tutkimalla tätä artikkelia et vain hallitse Go-kielen perustiedot, vaan ymmärrät myös sen edistyneitä ominaisuuksia ja parhaita käytäntöjä, mikä luo vankan perustan tulevalle Go-kielen kehitykselle. Rakennatpa sitten tehokkaita taustapalveluita tai monimutkaisia hajautettuja järjestelmiä, Go-kieli on korvaamaton kumppanisi.
Projektin lähdekoodin latausosoite:https://download.csdn.net/download/qq_42072014/89531977