Maison >développement back-end >Golang >Comment pouvons-nous définir de manière compacte des puissances de 1000 comme constantes dans Go ?

Comment pouvons-nous définir de manière compacte des puissances de 1000 comme constantes dans Go ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-25 03:09:131019parcourir

How Can We Compactly Define Powers of 1000 as Constants in 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!

Déclaration:
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