Вот несколько часто используемых структур данных на языке программирования Go (Golang), а также некоторые методы и примеры кода для каждой:
- Массивы:
- 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
- Фрагменты:
- 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]
- Карты:
- 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
- Связанные списки:
- В 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}
- Стопки:
- В 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