Go: gestire la deprecazione di rand.Seed()

Go: gestire la deprecazione di rand.Seed()

La funzione di generazione di un seed casuale del package rand è stata abbandonata in favore di una soluzione più efficiente ed affidabile.

La funzione Seed(seed) è stata deprecata dalla versione 1.20 di Go:

Deprecated: As of Go 1.20 there is no reason to call Seed with a random value. Programs that call Seed with a known value to get a specific sequence of results should use New(NewSource(seed)) to obtain a local random generator.

Di conseguenza occorre utilizzare ora il seguente approccio:


package main

import (
	"fmt"
	"math/rand"
	"time"
)

func main() {
    r := rand.New(rand.NewSource(time.Now().UnixNano()))
    randN := r.Intn(10)
    fmt.Println(randN) // Es. 6
}

Come si può notare, il cambiamento sostanziale riguarda la soluzione usata per generare il seed iniziale con cui poter generare vari numeri casuali.

Torna su