Junior
Ποιες είναι οι βασικές δομές δεδομένων στο Go;
sobes.tech AI
Απάντηση από AI
Στη γλώσσα Go, υπάρχουν οι ακόλουθες βασικές (primitive) και σύνθετες (composite) δομές δεδομένων:
Βασικές:
- Λογικές τιμές (
bool) - Αριθμητικοί τύποι:
- Ακέραιοι (
int,int8,int16,int32,int64,uint,uint8,uint16,uint32,uint64,uintptr) - Πραγματικοί αριθμοί (
float32,float64) - Συγκροτημένοι αριθμοί (
complex64,complex128) - Byte (
byte- ψευδώνυμο τουuint8) - Rune (
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)- Στη γλώσσα Go, οι συναρτήσεις είναι τύποι πρώτης τάξης.
type MyFunc func(int) string // τύπος συνάρτησης - Κανάλια (
channel)- Χρησιμοποιούνται για συγχρονισμό και ανταλλαγή δεδομένων μεταξύ goroutines.
ch := make(chan int) // κανάλι χωρίς buffer για int - Διεπαφές (
interface)- Αντιπροσωπεύουν ένα σύνολο μεθόδων που πρέπει να υλοποιεί ένας τύπος.
type Reader interface { Read(p []byte) (n int, err error) }
Επίσης, αξίζει να αναφερθούν και άλλοι σημαντικοί σύνθετοι τύποι, όπως:
- Λωρίδες byte (
[]byte) - Λωρίδες rune (
[]rune)
Αυτές οι δομές δεδομένων παρέχουν ευελιξία και απόδοση για ένα ευρύ φάσμα εργασιών στη γλώσσα Go.