Junior
Ce tipuri de date există în Go?
sobes.tech AI
Răspuns de la AI
În Go există patru categorii de tipuri de date:
-
Tipuri de bază (Basic types) - predefinite de compilator.
- Booleene:
bool - Numerice:
- Numere întregi:
int,int8,int16,int32,int64,uint,uint8(byte),uint16,uint32,uint64,uintptr - Numere în virgulă mobilă:
float32,float64 - Numere complexe:
complex64,complex128
- Numere întregi:
- Șiruri de caractere:
string
- Booleene:
-
Tipuri agregate (Aggregate types) - colecții de dimensiune fixă.
- Arrays:
[n]T(undeneste dimensiunea,Teste tipul elementelor) - Structuri:
struct {}(colecție de câmpuri denumite de diferite tipuri)
- Arrays:
-
Tipuri de referință (Reference types) - tipuri de referință, transmise prin referință, stochează un pointer către datele de bază.
- Slices:
[]T(array dinamic, bazat pe un array) - Hărți (Maps):
map[K]V(colecție de perechi cheie-valoare) - Poinți:
*T(stochează adresa unei variabile) - Canale:
chan T,chan<- T,<-chan T(pentru sincronizare și comunicare între goroutines) - Funcții:
func(...) (...)(tipul este semnătura funcției)
- Slices:
-
Tipuri de interfață (Interface types) - definesc un set de semnături de metode, implementate de tipurile de date.
- Interfețe:
interface{}(interfață goală),interface{ methodName(...) ... }
- Interfețe:
Exemple:
// Tipuri de bază
var isTrue bool = true
var age int = 30
var price float64 = 19.99
var name string = "Go Gopher"
// Tipuri agregate
var numbers [5]int = [5]int{1, 2, 3, 4, 5} // Array
type Person struct { // Structură
Name string
Age int
}
var p Person = Person{Name: "Alice", Age: 25}
// Tipuri de referință
var slice []int = []int{1, 2, 3} // Slice
var grades map[string]int = map[string]int{"Alice": 90, "Bob": 85} // Hartă
var ptr *int = &age // Pointer
var dataChan chan int = make(chan int) // Canal
var myFunc func(int) int = func(x int) int { return x * 2 } // Funcție
// Tipuri de interfață
var i interface{} = "anything" // Interfață goală
type Shape interface { // Interfață
Area() float64
}