Maison >développement back-end >Golang >Comment multiplier correctement une durée par un entier dans la fonction `time.Sleep()` de Go ?

Comment multiplier correctement une durée par un entier dans la fonction `time.Sleep()` de Go ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-05 07:21:11883parcourir

How to Correctly Multiply a Duration by an Integer in Go's `time.Sleep()` Function?

Multiplication de la durée par un nombre entier dans Go

Pour créer un délai dans une fonction Go, vous avez peut-être tenté d'utiliser le temps. Dormir avec un durée aléatoire générée à l’aide de rand.Int31n. Cependant, si vous rencontrez une erreur indiquant que les types ne correspondent pas, voici comment la résoudre :

Dans votre code, vous avez écrit :

time.Sleep(rand.Int31n(1000) * time.Millisecond)

Cette ligne tente de multiplier un int32 (renvoyé par rand.Int31n) par un time.Duration (la constante time.Millisecond). Cependant, ces types sont incompatibles, ce qui conduit à l'erreur.

Pour remédier à cela, vous devez convertir le int32 en time.Duration avant de le multiplier. Voici le code corrigé :

time.Sleep(time.Duration(rand.Int31n(1000)) * time.Millisecond)

En convertissant le int32 en time.Duration, vous vous assurez que la multiplication est effectuée entre types compatibles, résolvant ainsi l'erreur. Cela permettra à votre fonction de s'arrêter pendant une durée aléatoire pouvant aller jusqu'à une seconde.

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