Maison > développement back-end > Golang > Combien de types numériques y a-t-il dans Go ?

Combien de types numériques y a-t-il dans Go ?

青灯夜游
Libérer: 2023-01-09 11:08:11
original
1829 Les gens l'ont consulté

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.

Combien de types numériques y a-t-il dans Go ?

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.

Combien de types numériques y a-t-il dans Go ?

Types entiers liés à la plate-forme

Go fournit nativement trois types entiers liés à la plate-forme, à savoir int, uint et uintptr.

Combien de types numériques y a-t-il dans Go ?

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
Copier après la connexion
Sortie formatée

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
}
Copier après la connexion

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.

Notation décimale

3.1415
.15  // 整数部分如果为0,整数部分可以省略不写
81.80
82. // 小数部分如果为0,小数点后的0可以省略不写
Copier après la connexion

Notation scientifique

十进制表示法:

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
Copier après la connexion

Sortie formatée

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
Copier après la connexion

Go pluriels de langue

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

Résumé

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal