Maison >développement back-end >Golang >Combien de types numériques y a-t-il dans Go ?
Il existe trois types de types numériques dans Go : 1. Le type entier, qui peut être divisé en types entiers indépendants de la plate-forme et en types entiers liés à la plate-forme. La différence est de savoir si la longueur est cohérente sous différentes architectures de processeur ou systèmes d'exploitation. 2. Les types à virgule flottante peuvent être divisés en float32 et float64, qui correspondent respectivement aux types numériques à virgule flottante simple précision et double précision dans IEEE754. 3. Les nombres complexes peuvent être divisés en deux types : complexe128 (nombres réels et imaginaires de 64 bits) et complexe64 (nombres réels et imaginaires de 32 bits). Complex128 est le type par défaut de nombres complexes.
L'environnement d'exploitation de ce tutoriel : système Windows 7, GO version 1.18, ordinateur Dell G3.
Les types de données de base du système de langage Go incluent généralement des types numériques et des types de chaînes.
Et les types de valeurs numériques peuvent être divisés en types suivants : entiers, nombres à virgule flottante et nombres complexes, chacun contenant des types numériques de différentes tailles. Par exemple, les entiers signés incluent int8, int16, int32, int64, etc. Chaque type numérique détermine la plage de tailles correspondante et si elle prend en charge les signes positifs et négatifs.
Entiers du langage Go (types entiers)
Dans le langage Go, les entiers sont divisés en entiers indépendants de la plate-forme et en entiers liés à la plate-forme. La principale différence est que ces types d'entiers fonctionnent sous différentes architectures de processeur ou systèmes d'exploitation. , si leurs longueurs sont cohérentes.
Entiers indépendants de la plate-forme
Les entiers indépendants font la distinction entre les entiers signés et les entiers non signés, et les plages de données qu'ils représentent sont différentes.
Types entiers liés à la plate-forme
Go fournit nativement trois types entiers liés à la plate-forme, à savoir int, uint et uintptr.
Remarque spéciale : lorsque vous écrivez du code avec des exigences de portabilité, ne vous fiez jamais beaucoup à la longueur de ces types.
Vous pouvez obtenir la longueur de trois entiers sur la plateforme grâce à la fonction SizeOf fournie par le package unsafe.
func main() { var a, b = int(5), uint(6) var p uintptr = 0x12345678 fmt.Println("signed integer a's length is", unsafe.Sizeof(a)) fmt.Println("unsigned integer b's length is", unsafe.Sizeof(b)) fmt.Println("uintptr's length is", unsafe.Sizeof(p)) } // 打印输出 signed integer a's length is 8 unsigned integer b's length is 8 uintptr's length is 8
go fournit le package fmt de bibliothèque standard pour formater et générer différentes bases.
func main() { var a int8 = 66 fmt.Printf("%b\n", a) //输出二进制:1000010 fmt.Printf("%d\n", a) //输出十进制:66 fmt.Printf("%o\n", a) //输出八进制:102 fmt.Printf("%O\n", a) //输出八进制(带0o前缀):0o102 fmt.Printf("%x\n", a) //输出十六进制(小写):42 fmt.Printf("%X\n", a) //输出十六进制(大写):42 }
Type à virgule flottante du langage Go (type décimal)
Le langage Go fournit deux types à virgule flottante, float32 et float64, qui correspondent respectivement aux types numériques à virgule flottante simple précision et double précision dans IEEE754, qui correspond essentiellement aux types float et double en Java.
Le langage Go propose deux manières de représenter les types à virgule flottante, le type décimal et la notation scientifique ; la notation scientifique est divisée en deux méthodes de représentation : décimale et hexadécimale.
3.1415 .15 // 整数部分如果为0,整数部分可以省略不写 81.80 82. // 小数部分如果为0,小数点后的0可以省略不写
十进制表示法: 6674.28e-2 // 6674.28 * 10^(-2) = 66.742800 .12345E+5 // 0.12345 * 10^5 = 12345.000000 十六进制表示法: 0x2.p10 // 2.0 * 2^10 = 2048.000000 0x1.Fp+0 // 1.9375 * 2^0 = 1.937500
var f float64 = 112.676899 // 浮点类型第一种:十进制表示法 fmt.Printf("%f\n", f) // 112.676899 // 浮点类型第二种:科学计数法--十进制表示法 fmt.Printf("%e\n", f) // 1.126769e+02 // 浮点类型第二种:科学计数法--十六进制表示法 fmt.Printf("%x\n", f) // 0x1.c2b52502eec7dp+06
Go propose deux types de pluriels, ils sont complexes64 et complex128 respectivement. Les parties réelles et imaginaires de complex64 sont toutes deux de type float32, tandis que les parties réelles et imaginaires de complex128 sont toutes deux de type float64. Si un nombre complexe n'est pas explicitement saisi, son type par défaut est complexe128.
Go propose trois méthodes de représentation :
1. Initialisez directement une variable de type complexe à l'aide d'une valeur littérale complexe
var c = 5 + 7i var d = 0o123 + .12345E+5i // 83+12345i
2 Utilisez la fonction complexe fournie par Go pour créer une valeur de type complexe128
var c = complex(5, 6) // 5 + 6i var d = complex(0o123, .12345E+5) // 83+12345i
3. Les fonctions prédéfinies fournies real et imag peuvent obtenir les parties réelles et imaginaires d'un nombre complexe, et la valeur de retour est un type à virgule flottante
var c = complex(5, 6) // 5 + 6i r := real(c) // 5.000000 i := imag(c) // 6.000000
Connaissances étendues : les types numériques personnalisés
peuvent être transmis via le Go langage Le mot clé type est fourni pour déclarer un nouveau type basé sur un type numérique primitif.
Par exemple,
type NewInt int32
NewInt est notre type nouvellement défini. Le type sous-jacent est int32, mais il s'agit de deux types différents du type natif int32. Il ne peut pas être attribué directement et doit être affiché et converti.
type NewInt int32 var m int = 5 var n int32 = 6 var a NewInt = NewInt(m) // ok var b NewInt = NewInt(n) // ok
Bien sûr, si vous souhaitez pouvoir attribuer et utiliser directement des types natifs, Go fournit une syntaxe d'alias de type (Type Alias) pour personnaliser les types numériques.
type NewInt = int32 var m int32 = 5 var n NewInt = m
Go a trois types de types numériques natifs : entier, virgule flottante et complexe. D'après la brève introduction ci-dessus, nous pouvons savoir que Go est fondamentalement différent de la plupart des langages traditionnels. est également différent, comme sa prise en charge native des types pluriels.
【Recommandations associées : Tutoriel vidéo Go, Enseignement de la programmation】
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!