Maison > développement back-end > Golang > Comment écrire du code en Golang

Comment écrire du code en Golang

王林
Libérer: 2023-05-15 11:50:07
original
622 Les gens l'ont consulté

En tant que langage de programmation relativement jeune, Golang a reçu de plus en plus d'attention et de faveur, notamment dans le domaine du développement back-end. Cet article présentera la syntaxe de base et les paradigmes de programmation courants de Golang pour aider les débutants à démarrer rapidement.

1. Syntaxe de base

  1. Variables

Il existe de nombreuses façons de déclarer des variables. Vous pouvez utiliser le mot-clé var, ou vous pouvez utiliser l'opérateur := pour la déduction automatique de type :

var i int // 默认值为0
i = 10 

j := "Hello World" // 自动推导类型为string
Copier après la connexion
  1. Constant

Constant. life utilise const Les mots clés peuvent être utilisés pour les types d'énumération, les valeurs, les chaînes, etc. :

const (
    Pi     = 3.14159265358979323846
    Apples = 1 << iota  // Apples的值是1左移0位,即1
    Oranges            // Oranges的值是1左移1位,即2
    Bananas            // Bananas的值是1左移2位,即4
)
Copier après la connexion
  1. Structure de contrôle

La structure de contrôle du langage Go est la même que celle des autres langages, y compris if-else, switch-case, pour Instruction de boucle et de saut :

if i > 10 {
    fmt.Println("i is greater than 10")
} else {
    fmt.Println("i is less than or equal to 10")
}

switch {
    case i < 0:
        fmt.Println("i is negative")
    case i > 0:
        fmt.Println("i is positive")
    default:
        fmt.Println("i is zero")
}

for i := 0; i < 10; i++ {
    fmt.Println(i)
}

// 跳转语句
goto label1
fmt.Println("this line will never get executed")
label1:
fmt.Println("jumped to label1")
Copier après la connexion
  1. Tableaux et tranches

Les tableaux sont des types de valeur et la longueur est déterminée lorsqu'ils sont déclarés, tandis que les tranches sont des types de référence et la longueur change dynamiquement. Les tranches peuvent être créées via la fonction make ou générées par des opérations de découpage :

// 数组
var arr [5]int
for i := 0; i < 5; i++ {
    arr[i] = i
}

// 切片的创建和操作
var slice1 []int = arr[1:3]
slice2 := make([]int, 5, 10) // 第2个参数是长度,第三个参数是容量
slice2 = append(slice2, 1, 2, 3)
Copier après la connexion
  1. Structures et pointeurs

Les structures dans Golang peuvent non seulement définir des champs, mais aussi des méthodes. Le type pointeur de la structure peut être utilisé pour accéder aux champs et aux méthodes à l'aide des opérateurs . et -> :

type Person struct {
    name string
    age  int
}

func (p Person) SayHello() {
    fmt.Println("Hello, my name is", p.name, ", and I am", p.age, "years old.")
}

func main() {
    p := Person{name: "Alice", age: 30}
    p.SayHello()
    pp := &p
    fmt.Println(pp.age)
}
Copier après la connexion

2. Paradigme de programmation

  1. Programmation orientée objet

La programmation orientée objet dans Golang s'appuie également fortement sur structures et méthodes. Ici, nous pouvons utiliser le type d'interface pour définir des méthodes partagées :

type Animal interface {
    Speak() string
}

type Dog struct {
    name string
}

func (d Dog) Speak() string {
    return "Woof! I am " + d.name
}

func main() {
    d := Dog{"Fido"}
    fmt.Println(d.Speak())
}
Copier après la connexion
  1. Programmation simultanée

Golang est un langage qui prend naturellement en charge la programmation concurrente. En utilisant les deux concepts de goroutine et de canal, nous pouvons facilement implémenter des programmes simultanés efficaces :

func worker(id int, c chan int) {
    for {
        n, ok := <-c
        if !ok {
            break
        }
        fmt.Printf("Worker %d received %d
", id, n)
    }
    fmt.Printf("Worker %d is done
", id)
}

func createWorker(id int) chan<- int {
    c := make(chan int)
    go worker(id, c)
    return c
}

func main() {
    c := make(chan int)
    var wg sync.WaitGroup
    for i := 0; i < 10; i++ {
        wg.Add(1)
        go func(id int) {
            c := createWorker(id)
            for j := 0; j < 10; j++ {
                c <- j
            }
            wg.Done()
        }(i)
    }
    wg.Wait()
    close(c)
    time.Sleep(time.Second)
}
Copier après la connexion

Ce qui précède est la syntaxe de base et le paradigme de programmation de Golang. La discussion sur les fonctionnalités de langage plus avancées et les scénarios d'application pratiques nécessite une maîtrise du langage. -études et recherches approfondies.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal