Общие структуры данных в Golang: методы и примеры

Вот несколько часто используемых структур данных на языке программирования Go (Golang), а также некоторые методы и примеры кода для каждой:

  1. Массивы:
    • len(): возвращает длину массива.
    • [index]: осуществляет доступ к элементу по указанному индексу.
   var arr [5]int // Declare an integer array of length 5

   // Initializing values
   arr[0] = 1
   arr[1] = 2
   arr[2] = 3

   // Length of the array
   length := len(arr) // Output: 5

   // Accessing elements
   element := arr[1] // Output: 2
  1. Фрагменты:
    • append(): добавляет элементы в конец фрагмента.
    • copy(): копирует элементы из одного фрагмента в другой.
   var slice []int // Declare an integer slice

   // Initializing values
   slice = append(slice, 1)
   slice = append(slice, 2, 3, 4)

   // Adding elements
   slice = append(slice, 5) // Output: [1 2 3 4 5]

   // Copying slices
   newSlice := make([]int, len(slice))
   copy(newSlice, slice) // Output: [1 2 3 4 5]
  1. Карты:
    • make(): создает новую карту.
    • delete(): удаляет запись с карты.
    • len(): возвращает количество записей на карте.
   var m map[string]int // Declare a map with string keys and integer values

   // Initializing values
   m = make(map[string]int)
   m["one"] = 1
   m["two"] = 2

   // Deleting an entry
   delete(m, "two")

   // Number of entries
   count := len(m) // Output: 1
  1. Связанные списки:
    • В Go нет встроенной структуры данных для связанных списков, но вы можете реализовать ее с помощью структур и указателей.
   type Node struct {
       value int
       next  *Node
   }
// Creating a linked list
   var head *Node
   head = &Node{value: 1}
   head.next = &Node{value: 2}
   head.next.next = &Node{value: 3}
  1. Стопки:
    • В Go нет встроенной структуры данных для стеков, но ее можно реализовать с помощью срезов.
   var stack []int // Declare a slice as a stack

   // Pushing elements
   stack = append(stack, 1)
   stack = append(stack, 2)

   // Popping elements
   element := stack[len(stack)-1] // Top element
   stack = stack[:len(stack)-1]   // Remove top element

<старый старт="6">

  • Очереди:
    • В Go нет встроенной структуры данных для очередей, но ее можно реализовать с помощью срезов.
  •    var queue []int // Declare a slice as a queue
    
       // Enqueuing elements
       queue = append(queue, 1)
       queue = append(queue, 2)
    
       // Dequeuing elements
       element := queue[0]   // Front element
       queue = queue[1:]     // Remove front element