Go Cheatsheet - Random
Random
Pseudo Random Function
Use math/rand
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
num := rand.Int()
fmt.Println("Random Integer:", num)
// generate a number [0, 100)
num = rand.Intn(100)
fmt.Println("Random Integer:", num)
// generate a float number
fnum := rand.Float32()
fmt.Println("Random Float:", fnum)
// set seed then generate
seed := rand.NewSource(time.Now().UnixNano())
r1 := rand.New(seed)
num = r1.Intn(100)
fmt.Println("Random Integer:", num)
}
Crypto secure random
Use crypto/rand
package main
import (
"crypto/rand"
"encoding/hex"
"fmt"
"math/big"
)
func main() {
// generate random integer <100
num, _ := rand.Int(rand.Reader, big.NewInt(100))
fmt.Println("Random Integer", num.Int64())
// generate random string
fmt.Println(genRandString(8))
fmt.Println(genRandString(16))
}
func genRandString(size int) string {
b := make([]byte, size)
rand.Read(b)
return hex.EncodeToString(b)
}
Generate UUID4
Use uuid
package:
$ go get github.com/google/uuid
import (
"encoding/hex"
"github.com/google/uuid"
)
func genUUID4() string {
uuid4, _ := uuid.NewRandom()
bin, _ := uuid4.MarshalBinary()
return hex.EncodeToString(bin)
}