Le package Go Rand fournit des fonctions pour générer des nombres pseudo-aléatoires. Par défaut, ces chiffres sont basés sur une valeur de départ spécifique, conduisant à des résultats prévisibles à chaque exécution. Cela peut être problématique lors de la génération de vrais nombres pseudo-aléatoires pour des applications qui nécessitent des résultats imprévisibles.
Pour résoudre ce problème, vous devez initialiser le générateur aléatoire avec un nom unique. valeur de départ qui varie à chaque exécution. Une pratique courante consiste à utiliser l'heure actuelle en nanosecondes :
<code class="go">import "time" func main() { rand.Seed(time.Now().UnixNano()) fmt.Println(rand.Int31n(100)) }</code>
Cette approche exploite le fait que l'heure actuelle change constamment. Par conséquent, les nombres aléatoires générés différeront à chaque exécution.
Pour les applications où la sécurité est primordiale, telles que les générateurs de phrases secrètes, envisagez d'utiliser le crypto/rand package au lieu du package rand. Les fonctions de crypto/rand s'appuient sur des techniques plus avancées pour générer des nombres aléatoires plus forts. Cependant, notez que ces fonctions peuvent être considérablement plus lentes.
En définissant une valeur de départ unique, vous pouvez vous assurer que le package Go rand génère de vrais nombres pseudo-aléatoires. Le package rand convient à la plupart des applications, mais crypto/rand offre une sécurité améliorée à un coût potentiel en termes de performances.
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!