Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Belajar menggunakan struktur data biasa dan kaedahnya dalam bahasa Go

Belajar menggunakan struktur data biasa dan kaedahnya dalam bahasa Go

WBOY
WBOYasal
2024-01-09 17:02:30905semak imbas

Belajar menggunakan struktur data biasa dan kaedahnya dalam bahasa Go

Untuk menguasai struktur data biasa dan penggunaannya dalam bahasa Go, contoh kod khusus diperlukan

Dalam bahasa Go, struktur data ialah cara untuk mengatur dan menyimpan data. Menguasai struktur data biasa dan cara menggunakannya adalah penting untuk membangunkan program yang cekap. Artikel ini akan memperkenalkan struktur data biasa dalam bahasa Go dan memberikan contoh kod khusus.

  1. Array
    Suatu tatasusunan ialah struktur data yang menyimpan elemen saiz tetap. Dalam bahasa Go, panjang tatasusunan tidak boleh diubah.

Contoh kod:

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 ialah pelaksanaan tatasusunan dinamik dalam bahasa Go. Panjang kepingan boleh diubah secara dinamik.

Contoh kod:

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. Senarai Terpaut
    Senarai terpaut ialah struktur data linear yang digunakan untuk menyimpan data. Dalam bahasa Go, penunjuk boleh digunakan untuk melaksanakan senarai terpaut.

Contoh kod:

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. Timbunan (Timbunan)
    Timbunan ialah struktur data yang terakhir masuk dahulu (LIFO). Dalam bahasa Go, anda boleh menggunakan kepingan untuk melaksanakan tindanan.

Contoh kod:

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. Barisan
    Barisan ialah struktur data dahulu masuk dahulu (FIFO). Dalam bahasa Go, anda boleh menggunakan kepingan untuk melaksanakan baris gilir.

Contoh kod:

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()
    }
}

Contoh kod di atas merangkumi struktur data biasa dalam bahasa Go dan cara menggunakannya. Dengan mempelajari dan menguasai struktur data ini, kecekapan dan kebolehbacaan program boleh dipertingkatkan. Saya harap artikel ini akan membantu anda mempelajari struktur data bahasa Go.

Atas ialah kandungan terperinci Belajar menggunakan struktur data biasa dan kaedahnya dalam bahasa Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn