Fondamentaux des types numériques en Go
Go est un langage de programmation à typage statique, ce qui signifie que les variables doivent être déclarées avec un type de données spécifique. En Go, il existe plusieurs types numériques qui peuvent être utilisés pour représenter différents types de valeurs numériques. Comprendre les bases de ces types numériques est essentiel pour écrire un code Go efficace et correct.
Types entiers en Go
Go propose plusieurs types entiers, notamment int8
, int16
, int32
, int64
, uint8
, uint16
, uint32
et uint64
. Les types int
et uint
sont également disponibles ; ils dépendent de la plateforme et peuvent être de 32 bits ou de 64 bits, selon l'architecture du système.
Voici un exemple de déclaration et d'utilisation de types entiers en Go :
package main
import "fmt"
func main() {
var a int8 = 127
var b int16 = 32767
var c int32 = 2147483647
var d int64 = 9223372036854775807
fmt.Println("a:", a)
fmt.Println("b:", b)
fmt.Println("c:", c)
fmt.Println("d:", d)
}
Ce code produira la sortie suivante :
a: 127
b: 32767
c: 2147483647
d: 9223372036854775807
Types à virgule flottante en Go
Go propose également deux types à virgule flottante : float32
et float64
. Ces types sont utilisés pour représenter des nombres décimaux.
Voici un exemple de déclaration et d'utilisation de types à virgule flottante en Go :
package main
import "fmt"
func main() {
var a float32 = 3.14
var b float64 = 3.14159265358979
fmt.Println("a:", a)
fmt.Println("b:", b)
}
Ce code produira la sortie suivante :
a: 3.14
b: 3.14159265358979
Déclaration et inférence de type
En Go, vous pouvez déclarer des variables en spécifiant explicitement le type ou non. Lorsque vous ne spécifiez pas le type, Go l'infèrera en fonction de la valeur assignée à la variable.
Voici un exemple :
package main
import "fmt"
func main() {
var a = 42 // a est inféré comme étant un int
var b = 3.14 // b est inféré comme étant un float64
c := "hello" // c est inféré comme étant une chaîne de caractères (string)
d := 42.0 // d est inféré comme étant un float64
fmt.Println("a:", a)
fmt.Println("b:", b)
fmt.Println("c:", c)
fmt.Println("d:", d)
}
Ce code produira la sortie suivante :
a: 42
b: 3.14
c: hello
d: 42