Découverte de la valeur maximale d'un entier non signé dans Go
Lorsque vous travaillez avec des entiers non signés dans Go, il est souvent nécessaire de déterminer leur maximum représentable valeur. Cette valeur varie en fonction de la longueur en bits du type, comme uint8, uint16 ou uint64.
Initialisation de minLen pour le calcul comparatif
Dans la boucle fournie, la variable minLen doit être initialisée de telle sorte qu'elle soit supérieure à toute valeur potentielle de thing.n rencontrée lors de l'itération. Cela permet à la boucle de trouver correctement les longueurs minimales et maximales de sliceOfThings.
Spécification de la valeur maximale
Selon la documentation et les discussions du forum, la valeur maximale d'un Le type entier non signé peut être déterminé à l'aide d'opérations au niveau du bit comme suit :
const MaxUint = ^uint(0)
Par exemple, pour un uint32 type, MaxUint serait égal à 4294967295.
Initialisation de minLen
En utilisant la constante MaxUint, nous pouvons initialiser minLen en conséquence :
var minLen uint = ^uint(0)
Cela garantit que la première comparaison minLen > thing.n sera toujours évalué à true avant toute itération, permettant à la boucle de démarrer avec la valeur maximale comme hypothèse initiale pour la longueur minimale.
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!