Maison > Article > développement back-end > Interprétation de la documentation en langage Go : Explication détaillée de la fonction crypto/rand.Int
Le langage Go est un langage de programmation moderne En raison de son efficacité et de ses caractéristiques faciles à apprendre, de plus en plus de développeurs commencent à utiliser ce langage dans des projets. Dans le langage Go, l'utilisation de nombres aléatoires est une exigence très courante, et la fonction Int dans crypto/rand, le package générateur de nombres aléatoires crypté fourni avec le langage Go, fournit un moyen de générer des entiers aléatoires.
Cet article expliquera la fonction crypto/rand.Int en détail et fournira des exemples de code spécifiques.
1. Fonction crypto/rand.Int
La fonction crypto/rand.Int est une fonction de génération d'entiers aléatoires fournie dans le package crypto/rand du langage Go. Cette fonction a deux paramètres : un paramètre d'entrée rand, qui représente la source de génération de nombres aléatoires ; un paramètre de sortie limbs, qui représente la longueur totale de l'entier aléatoire de sortie.
Le prototype de cette fonction est le suivant :
func Int(rand io.Reader, max *big.Int) (n *big.Int, err error)
Parmi eux, le paramètre rand est la source à partir de laquelle des nombres aléatoires sont générés, qui peuvent généralement être obtenus en appelant la fonction Reader dans le package crypto/rand. Le paramètre max représente la longueur totale de l'entier aléatoire de sortie et la valeur par défaut est 1.
Le type de retour de cette fonction est *big.Int, car la bibliothèque de grands nombres Big dans le langage Go peut être utilisée pour stocker des entiers de n'importe quelle longueur. Si la génération de nombres aléatoires échoue ou qu'une erreur se produit, la fonction renverra un objet de type error.
2. Exemples d'utilisation de la fonction Int
Ensuite, nous fournissons deux exemples spécifiques d'utilisation de la fonction Int afin que les lecteurs puissent mieux comprendre et utiliser cette fonction.
Ce qui suit est une implémentation qui utilise la fonction crypto/rand.Int pour générer un entier aléatoire entre 1 et 100.
package main import ( "crypto/rand" "fmt" "math/big" ) func main() { max := big.NewInt(100) n, err := rand.Int(rand.Reader, max) if err != nil { fmt.Println("生成随机数失败:", err) return } fmt.Println(n) }
En appelant la fonction Reader dans le package crypto/rand et en la passant comme paramètre à la fonction rand.Int, nous pouvons générer n'importe quel entier compris entre 1 et 100. Si une erreur se produit, en affichant le message d'erreur, nous pouvons corriger le code à temps.
Voici un exemple plus complexe qui montre comment utiliser la fonction crypto/rand.Int pour générer une chaîne aléatoire d'une longueur spécifiée.
package main import ( "crypto/rand" "fmt" "math/big" ) const charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" func main() { length := 20 max := big.NewInt(int64(len(charset))) data := make([]byte, length) for i := 0; i < length; i++ { n, err := rand.Int(rand.Reader, max) if err != nil { fmt.Println("生成随机数失败:", err) return } index := int(n.Int64()) data[i] = charset[index] } fmt.Println(string(data)) }
Le code ci-dessus génère une chaîne aléatoire de longueur 20. Les étapes spécifiques sont les suivantes :
1. Définissez un tableau d'octets d'une longueur de 20 pour stocker le nombre aléatoire renvoyé.
2. Définissez la limite supérieure des nombres aléatoires générés sur la longueur du jeu de caractères pour appeler la fonction rand.Int afin de générer n'importe quel entier compris entre 0~len(charset)-1.
3. Utilisez le nombre aléatoire généré comme indice du jeu de caractères et stockez le résultat dans le tableau d'octets.
4. Enfin, convertissez le tableau d'octets en une chaîne et affichez-le.
3. Résumé
Grâce à l'introduction de cet article, nous avons appris l'utilisation de base de la fonction crypto/rand.Int dans le langage Go, qui est très utile pour générer des entiers et des chaînes aléatoires.
Veuillez également noter que les nombres aléatoires ne sont pas complètement aléatoires, mais pseudo-aléatoires. Par conséquent, lors de l’utilisation de la fonction Int pour générer des nombres aléatoires, il est important de s’assurer qu’une source d’entropie suffisante est fournie pour garantir le caractère aléatoire et la sécurité.
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!