Maison >développement back-end >Golang >Comment pouvons-nous définir de manière compacte des puissances de 1000 comme constantes dans Go ?
Comment exprimer de manière compacte des puissances de 10 sous forme de constantes
Dans le langage de programmation Go, le concept de constantes est introduit avec iota comme puissant mécanisme permettant de générer des valeurs constantes compactes et lisibles. L'exercice 3.13 du livre met les lecteurs au défi de définir succinctement des constantes représentant des puissances de 1000 (Ko, Mo, etc.).
Bien que l'exercice puisse sembler nécessiter une solution sophistiquée impliquant iota, les auteurs déclarent explicitement que cette approche n'est pas réalisable en raison du manque d'exponentiation dans Go. Au lieu de cela, ils encouragent les lecteurs à explorer des solutions « aussi compactes que ».
Approche des littéraux à virgule flottante
Une approche compacte consiste à utiliser des littéraux à virgule flottante avec un exposant. partie. Par exemple, la constante 1e3 représente la valeur 1000, et chaque constante suivante peut être obtenue en multipliant par 1000 ou en ajoutant simplement 3 à l'exposant. Cette méthode donne la déclaration suivante sur une ligne (hors espaces) :
const ( KB, MB, GB, TB, PB, EB, ZB, YB = 1e3, 1e6, 1e9, 1e12, 1e15, 1e18, 1e21, 1e24 )
Approche des littéraux entiers
Alternativement, pour les constantes entières non typées, nous pouvons multiplier les constantes suivantes constantes par 1000. Cependant, nous pouvons économiser de l'espace en utilisant à la place la constante précédente comme multiplicateur. Par exemple, MB peut être défini comme KB 1000 ou simplement KB KB.
const (KB, MB, GB, TB, PB, EB, ZB, YB = 1000, KB*KB, MB*KB, GB*KB, TB*GB, PB*KB, EB*KB, ZB*KB)
Introduction d'une constante supplémentaire
Cette solution peut être affiné en introduisant une constante supplémentaire x représentant 1000. En utilisant x comme multiplicateur, nous économisons 3 caractères.
const (x, KB, MB, GB, TB, PB, EB, ZB, YB = 1000, x, x*x, MB*x, GB*x, TB*GB, PB*x, EB*x, ZB*x)
Approche Rune Literal
Enfin, pour un maximum de compacité, on peut attribuer la valeur 1000 à une constante runique. En Unicode, le point de code 1000 représente le caractère « Ϩ », qui est 1 caractère plus court que « x ».
const (x, KB, MB, GB, TB, PB, EB, ZB, YB = 'Ϩ', x, x*x, MB*x, GB*x, TB*GB, PB*x, EB*x, ZB*x)
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!