Teknologian jakaminen

Siirry yksityiskohtaiseen kielen opetusohjelmaan

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

1. Go-kielen perusteet

1.1 Asenna Go-ympäristö

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.

1.2 Hello World -ohjelma

Mennä

tumma versio

  1. 1package main
  2. 2
  3. 3import "fmt"
  4. 4
  5. 5func main() {
  6. 6 fmt.Println("Hello, World!")
  7. 7}

1.3 Tietotyypit

Go-kieli tarjoaa erilaisia ​​sisäänrakennettuja tietotyyppejä, mukaan lukien kokonaisluvut (int, int8, int16, int32, int64), liukulukutyypit (float32, float64), Boolen (bool), merkkijono (merkkijono) jne.

1.4 Ohjausrakenne

Go-kieli tukee if-lauseita, silmukoita, vaihtokäskyjä ja lykkäyskäskyjä ohjelman kulun ohjaamiseksi.

1.5 Toiminnot

Funktiot ovat Go-kielen perussuoritusyksikkö. Funktiot voivat hyväksyä parametreja ja palauttaa tuloksia.

Mennä

tumma versio

  1. 1func add(x int, y int) int {
  2. 2 return x + y
  3. 3}

1.6 Osoittimet

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

  1. 1func increment(p *int) {
  2. 2 *p++
  3. 3}

2. Edistynyt Go-kieli

2.1 Käyttöliittymä

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

  1. 1type Shape interface {
  2. 2 Area() float64
  3. 3}
  4. 4
  5. 5type Circle struct {
  6. 6 Radius float64
  7. 7}
  8. 8
  9. 9func (c Circle) Area() float64 {
  10. 10 return math.Pi * c.Radius * c.Radius
  11. 11}

2.2 Virheiden käsittely

Go-kieli suosittelee virheen palautusarvojen käyttöä poikkeuksien käsittelemiseen.

Mennä

tumma versio

  1. 1func divide(x, y int) (int, error) {
  2. 2 if y == 0 {
  3. 3 return 0, errors.New("cannot divide by zero")
  4. 4 }
  5. 5 return x / y, nil
  6. 6}

2.3 Samanaikaisuus ja goutiini

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

  1. 1func say(s string) {
  2. 2 for i := 0; i < 5; i++ {
  3. 3 fmt.Println(s)
  4. 4 }
  5. 5}
  6. 6
  7. 7func main() {
  8. 8 go say("world") // 开始一个新的goroutine
  9. 9 say("hello")
  10. 10}

2.4 Konteksti

Kontekstia käytetään peruutussignaalien välittämiseen gorutiinien välillä, jolloin ohjelma voi lopettaa pitkään jatkuneet goritiinit sulavasti.

Mennä

tumma versio

  1. 1func main() {
  2. 2 ctx, cancel := context.WithCancel(context.Background())
  3. 3 go func() {
  4. 4 select {
  5. 5 case <-ctx.Done():
  6. 6 fmt.Println("operation canceled")
  7. 7 case <-time.After(time.Second * 3):
  8. 8 fmt.Println("operation completed")
  9. 9 }
  10. 10 }()
  11. 11 time.Sleep(time.Second)
  12. 12 cancel()
  13. 13}

3. Siirry kielen parhaisiin käytäntöihin

3.1 Koodiorganisaatio

Go-kieli suosittelee koodin järjestämiseen modulaarista lähestymistapaa. Jokainen hakemisto edustaa pakettia ja määrittelee siinä yhden tai useamman .go-tiedoston.

3.2 Riippuvuuden hallinta

Go-moduulijärjestelmä (go mod ) käytetään projektin ulkoisten riippuvuuksien hallintaan.käyttäägo getjago mod tidyKomennot lisätä ja järjestää riippuvuuksia.

3.3 Testaus

Go-kielessä on sisäänrakennettu tehokas testauskehys, käytätestingpaketti testitapausten kirjoittamiseen.

Mennä

tumma versio

  1. 1import (
  2. 2 "testing"
  3. 3)
  4. 4
  5. 5func TestAdd(t *testing.T) {
  6. 6 tests := []struct {
  7. 7 x, y, want int
  8. 8 }{
  9. 9 {2, 2, 4},
  10. 10 {1, 3, 4},
  11. 11 {0, 0, 0},
  12. 12 }
  13. 13 for _, tt := range tests {
  14. 14 got := add(tt.x, tt.y)
  15. 15 if got != tt.want {
  16. 16 t.Errorf("add(%d, %d) = %d; want %d", tt.x, tt.y, got, tt.want)
  17. 17 }
  18. 18 }
  19. 19}

3.4 Rakenna ja ota käyttöön

käyttäägo buildKäytä komentoa suoritettavan tiedoston luomiseengo installAsenna projekti sisään$GOPATH/binhakemistoon järjestelmäpuheluiden helpottamiseksi.

4. Go-kielen käytännön soveltaminen

Go-kieltä käytetään laajasti taustapalveluissa, verkko-ohjelmoinnissa, mikropalveluarkkitehtuurissa, DevOps-työkaluissa, tietokannassa, väliohjelmistossa ja muissa skenaarioissa.

4.1 Mikropalveluarkkitehtuuri

Go-kielen korkea samanaikaisuus tekee siitä ihanteellisen valinnan mikropalvelujen rakentamiseen.

4.2 Verkko-ohjelmointi

Go-kielen vakiokirjasto tarjoaa monipuolisen verkkoohjelmointirajapinnan, mukaan lukien HTTP-palvelin, asiakas, WebSocket, TCP/IP jne.

4.3 DevOps-työkalut

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.

5. Yhteenveto

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