Junior
Ποιοι τύποι δεδομένων υπάρχουν στο Go;
sobes.tech AI
Απάντηση από AI
Στη Go υπάρχουν τέσσερις κατηγορίες τύπων δεδομένων:
-
Βασικοί τύποι (Basic types) - προεπιλεγμένοι από τον μεταγλωττιστή.
- Λογικοί:
bool - Αριθμητικοί:
- Ακέραιοι:
int,int8,int16,int32,int64,uint,uint8(byte),uint16,uint32,uint64,uintptr - Πλωτοί:
float32,float64 - Συγκροτήματα:
complex64,complex128
- Ακέραιοι:
- Συμβολοσειρές:
string
- Λογικοί:
-
Συσσωρευμένοι τύποι (Aggregate types) - συλλογές σταθερού μεγέθους.
- Πίνακες:
[n]T(όπουnτο μέγεθος,Tο τύπος των στοιχείων) - Δομές:
struct {}(συλλογή ονομασμένων πεδίων διαφορετικών τύπων)
- Πίνακες:
-
Τύποι αναφοράς (Reference types) - τύποι αναφοράς, περνούν με αναφορά, αποθηκεύουν δείκτη στα βασικά δεδομένα.
- Λωρίδες:
[]T(δυναμικός πίνακας, βασίζεται σε πίνακα) - Χάρτες:
map[K]V(συλλογή ζευγών κλειδιού-τιμής) - Δείκτες:
*T(αποθηκεύουν τη διεύθυνση μιας μεταβλητής) - Κανάλια:
chan T,chan<- T,<-chan T(για συγχρονισμό και επικοινωνία μεταξύ goroutines) - Συναρτήσεις:
func(...) (...)(ο τύπος είναι η υπογραφή της συνάρτησης)
- Λωρίδες:
-
Τύποι διεπαφής (Interface types) - ορίζουν ένα σύνολο υπογραφών μεθόδων που υλοποιούνται από τύπους δεδομένων.
- Διεπαφές:
interface{}(κενή διεπαφή),interface{ methodName(...) ... }
- Διεπαφές:
Παραδείγματα:
// Βασικοί τύποι
var isTrue bool = true
var age int = 30
var price float64 = 19.99
var name string = "Go Gopher"
// Συσσωρευμένοι τύποι
var numbers [5]int = [5]int{1, 2, 3, 4, 5} // Πίνακας
type Person struct { // Δομή
Name string
Age int
}
var p Person = Person{Name: "Alice", Age: 25}
// Τύποι αναφοράς
var slice []int = []int{1, 2, 3} // Λωρίδα
var grades map[string]int = map[string]int{"Alice": 90, "Bob": 85} // Χάρτης
var ptr *int = &age // Δείκτης
var dataChan chan int = make(chan int) // Κανάλι
var myFunc func(int) int = func(x int) int { return x * 2 } // Συνάρτηση
// Τύποι διεπαφής
var i interface{} = "anything" // Κενή διεπαφή
type Shape interface { // Διεπαφή
Area() float64
}