Maison >développement back-end >Golang >Apprenez à utiliser les structures de données courantes et leurs méthodes en langage Go

Apprenez à utiliser les structures de données courantes et leurs méthodes en langage Go

WBOY
WBOYoriginal
2024-01-09 17:02:30955parcourir

Apprenez à utiliser les structures de données courantes et leurs méthodes en langage Go

Pour maîtriser les structures de données courantes et leur utilisation en langage Go, des exemples de code spécifiques sont nécessaires

En langage Go, la structure de données est un moyen d'organiser et de stocker des données. La maîtrise des structures de données communes et la manière de les utiliser sont essentielles au développement de programmes efficaces. Cet article présentera les structures de données courantes dans le langage Go et fournira des exemples de code spécifiques.

  1. Array
    Un tableau est une structure de données qui stocke des éléments de taille fixe. En langage Go, la longueur des tableaux est immuable.

Exemple de code :

package main

import "fmt"

func main() {
    // 创建一个长度为5的整数数组
    var arr [5]int

    // 给数组赋值
    for i := 0; i < len(arr); i++ {
        arr[i] = i * i
    }

    // 打印数组的值
    for _, value := range arr {
        fmt.Println(value)
    }
}
  1. Slice
    Slice est l'implémentation de tableaux dynamiques en langage Go. La longueur de la tranche peut être modifiée dynamiquement.

Exemple de code :

package main

import "fmt"

func main() {
    // 创建一个空切片
    var slice []int

    // 给切片添加元素
    slice = append(slice, 1)
    slice = append(slice, 2)
    slice = append(slice, 3)

    // 打印切片的容量和长度
    fmt.Println("Capacity:", cap(slice))
    fmt.Println("Length:", len(slice))

    // 打印切片的值
    for _, value := range slice {
        fmt.Println(value)
    }
}
  1. Liste chaînée
    Une liste chaînée est une structure de données linéaire utilisée pour stocker des données. En langage Go, les pointeurs peuvent être utilisés pour implémenter des listes chaînées.

Exemple de code :

package main

import "fmt"

type Node struct {
    data int
    next *Node
}

type LinkedList struct {
    head *Node
}

func (list *LinkedList) add(data int) {
    newNode := &Node{data: data}

    if list.head == nil {
        list.head = newNode
    } else {
        current := list.head
        for current.next != nil {
            current = current.next
        }
        current.next = newNode
    }
}

func main() {
    linkedList := &LinkedList{}

    linkedList.add(1)
    linkedList.add(2)
    linkedList.add(3)

    current := linkedList.head
    for current != nil {
        fmt.Println(current.data)
        current = current.next
    }
}
  1. Stack (Stack)
    Stack est une structure de données dernier entré, premier sorti (LIFO). En langage Go, vous pouvez utiliser des tranches pour implémenter des piles.

Exemple de code :

package main

import "fmt"

type Stack struct {
    data []int
}

func (stack *Stack) push(value int) {
    stack.data = append(stack.data, value)
}

func (stack *Stack) pop() int {
    if len(stack.data) == 0 {
        return -1
    }
    value := stack.data[len(stack.data)-1]
    stack.data = stack.data[:len(stack.data)-1]
    return value
}

func main() {
    stack := &Stack{}

    stack.push(1)
    stack.push(2)
    stack.push(3)

    value := stack.pop()
    for value != -1 {
        fmt.Println(value)
        value = stack.pop()
    }
}
  1. Queue
    La file d'attente est une structure de données premier entré, premier sorti (FIFO). En langage Go, vous pouvez utiliser des tranches pour implémenter des files d'attente.

Exemples de code :

package main

import "fmt"

type Queue struct {
    data []int
}

func (queue *Queue) enqueue(value int) {
    queue.data = append(queue.data, value)
}

func (queue *Queue) dequeue() int {
    if len(queue.data) == 0 {
        return -1
    }
    value := queue.data[0]
    queue.data = queue.data[1:]
    return value
}

func main() {
    queue := &Queue{}

    queue.enqueue(1)
    queue.enqueue(2)
    queue.enqueue(3)

    value := queue.dequeue()
    for value != -1 {
        fmt.Println(value)
        value = queue.dequeue()
    }
}

Les exemples de code ci-dessus couvrent les structures de données courantes dans le langage Go et comment les utiliser. En apprenant et en maîtrisant ces structures de données, l'efficacité et la lisibilité du programme peuvent être améliorées. J'espère que cet article vous aidera à apprendre la structure des données du langage Go.

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!

Déclaration:
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