Junior
Quels sont les types de données en Go?
sobes.tech IA
Réponse de l'IA
Il existe quatre catégories de types de données en Go:
-
Types de base (Basic types) - prédéfinis par le compilateur.
- Booléens :
bool - Numériques :
- Entiers :
int,int8,int16,int32,int64,uint,uint8(byte),uint16,uint32,uint64,uintptr - Flottants :
float32,float64 - Complexes :
complex64,complex128
- Entiers :
- Chaînes :
string
- Booléens :
-
Types agrégés (Aggregate types) - collections de taille fixe.
- Tableaux :
[n]T(oùnest la taille,Test le type des éléments) - Structures :
struct {}(collection de champs nommés de types différents)
- Tableaux :
-
Types de référence (Reference types) - types de référence, passés par référence, stockent un pointeur vers les données de base.
- Slices :
[]T(tableau dynamique, basé sur un tableau) - Maps :
map[K]V(collection de paires clé-valeur) - Pointeurs :
*T(stockent l'adresse d'une variable) - Canaux :
chan T,chan<- T,<-chan T(pour la synchronisation et la communication entre goroutines) - Fonctions :
func(...) (...)(le type est la signature de la fonction)
- Slices :
-
Types d'interface (Interface types) - définissent un ensemble de signatures de méthodes que les types de données implémentent.
- Interfaces :
interface{}(interface vide),interface{ methodName(...) ... }
- Interfaces :
Exemples :
// Types de base
var isTrue bool = true
var age int = 30
var price float64 = 19.99
var name string = "Go Gopher"
// Types agrégés
var numbers [5]int = [5]int{1, 2, 3, 4, 5} // Tableau
type Person struct { // Structure
Name string
Age int
}
var p Person = Person{Name: "Alice", Age: 25}
// Types de référence
var slice []int = []int{1, 2, 3} // Slice
var grades map[string]int = map[string]int{"Alice": 90, "Bob": 85} // Carte
var ptr *int = &age // Pointeur
var dataChan chan int = make(chan int) // Canal
var myFunc func(int) int = func(x int) int { return x * 2 } // Fonction
// Types d'interface
var i interface{} = "anything" // Interface vide
type Shape interface { // Interface
Area() float64
}