Назад к вопросам
Junior
109
questionbank
Какие основные структуры данных существуют в Go?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
В Go существуют следующие основные встроенные (primitive) и составные (composite) структуры данных:
Встроенные:
- Булевы (
bool) - Числовые типы:
- Целочисленные (
int,int8,int16,int32,int64,uint,uint8,uint16,uint32,uint64,uintptr) - Числа с плавающей точкой (
float32,float64) - Комплексные числа (
complex64,complex128) - Байт (
byte- псевдонимuint8) - Руна (
rune- псевдонимint32, представляет символ Unicode)
- Целочисленные (
- Строки (
string)
Составные:
- Массивы (
array)- Фиксированный размер.
var arr [5]int // массив из 5 целых чисел - Срезы (
slice)- Динамический размер, основаны на массивах.
var s []int // неинициализированный срез s = make([]int, 5, 10) // срез длиной 5 с вместимостью 10 - Карты (
map)- Неупорядоченная коллекция пар ключ-значение.
m := make(map[string]int) // карта с ключами string и значениями int - Структуры (
struct)- Типизированная коллекция полей.
type Person struct { Name string Age int } - Указатели (
pointer)- Хранят адрес ячейки памяти.
var x int = 10 var p *int = &x // p указывает на x - Функции (
func)- В Golang функции являются типами первого класса.
type MyFunc func(int) string // тип функции - Каналы (
channel)- Используются для синхронизации и обмена данными между горутинами.
ch := make(chan int) // небуферизованный канал для int - Интерфейсы (
interface)- Представляют набор методов, которые тип должен реализовать.
type Reader interface { Read(p []byte) (n int, err error) }
Также стоит упомянуть о наличии других важных составных типов, таких как:
- Срезы байт (
[]byte) - Срезы рун (
[]rune)
Эти структуры данных обеспечивают гибкость и производительность для широкого спектра задач в Go.