Junior
Jakie są główne struktury danych w Go?
sobes.tech AI
Odpowiedź od AI
W języku Go istnieją następujące podstawowe (prymitywne) i złożone (kompozytowe) struktury danych:
Prymitywne:
- Wartości logiczne (
bool) - Typy liczbowe:
- Liczby całkowite (
int,int8,int16,int32,int64,uint,uint8,uint16,uint32,uint64,uintptr) - Liczby zmiennoprzecinkowe (
float32,float64) - Liczby zespolone (
complex64,complex128) - Byte (
byte- alias dlauint8) - Rune (
rune- alias dlaint32, reprezentuje znak Unicode)
- Liczby całkowite (
- Ciągi znaków (
string)
Struktury złożone:
- Tablice (
array)- O stałym rozmiarze.
var arr [5]int // tablica 5 liczb całkowitych - Slicery (
slice)- Dynamiczny rozmiar, oparty na tablicach.
var s []int // niezainicjalizowany slicer s = make([]int, 5, 10) // slicer o długości 5 i pojemności 10 - Mapy (
map)- Nieuporządkowana kolekcja par klucz-wartość.
m := make(map[string]int) // mapa z kluczami typu string i wartościami int - Struktury (
struct)- Typowana kolekcja pól.
type Person struct { Name string Age int } - Wskaźniki (
pointer)- Przechowują adres komórki pamięci.
var x int = 10 var p *int = &x // p wskazuje na x - Funkcje (
func)- W Go funkcje są typami pierwszej klasy.
type MyFunc func(int) string // typ funkcji - Kanały (
channel)- Używane do synchronizacji i wymiany danych między gorutynami.
ch := make(chan int) // kanał bez bufora dla int - Interfejsy (
interface)- Reprezentują zestaw metod, które typ musi zaimplementować.
type Reader interface { Read(p []byte) (n int, err error) }
Warto również wspomnieć o innych ważnych typach złożonych, takich jak:
- Slice bajtów (
[]byte) - Slice rune (
[]rune)
Te struktury danych zapewniają elastyczność i wydajność dla szerokiego zakresu zadań w Go.