Golang : Randomly pick an item from a slice/array example
Problem:
You are building a game and you want to randomly pick an item from a slice of URLs. How to pick one item at random?
Solution:
You can either shuffle the items inside the slice and pick the first item or use the code example below.
pickRandomURL.go
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
URLs := []string{
"http://top-beautiful-women.com/images/1/Japan/Erina%20Mano.jpg",
"http://top-beautiful-women.com/images/1/Japan/Rina%20Uchiyama.jpg",
"http://cdn2.stylecraze.com/wp-content/uploads/2013/06/yui-aragaki.jpg",
"http://cdn2.stylecraze.com/wp-content/uploads/2013/06/rio-yamashita.jpg",
}
// randomly pick one beautiful girl(URL) from the URLs slice
rand.Seed(time.Now().UnixNano())
choosen := URLs[rand.Intn(len(URLs))]
fmt.Println("Randomly selected this URL : ", choosen)
}
Output:
>go run pickRandomURL.go
Randomly selected this URL : http://cdn2.stylecraze.com/wp-content/uploads/2013/06/yui-aragaki.jpg
>go run pickRandomURL.go
Randomly selected this URL : http://top-beautiful-women.com/images/1/Japan/Erina%20Mano.jpg
References:
https://www.socketloop.com/tutorials/golang-how-to-shuffle-elements-in-array-or-slice
See also : Golang : How to shuffle elements in array or slice?
By Adam Ng
IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.
Advertisement
Tutorials
+10.5k Golang : Convert decimal number(integer) to IPv4 address
+4.2k Python : Convert(cast) string to bytes example
+7k Findstr command the Grep equivalent for Windows
+11.6k Golang : Pass database connection to function called from another package and HTTP Handler
+4.7k Golang : Error handling methods
+5.7k Unix/Linux : How to fix CentOS yum duplicate glibc or device-mapper-libs dependency error?
+16.2k Golang : Linked list example
+25.8k Golang : Convert CSV data to JSON format and save to file
+29.3k Golang : How to convert(cast) string to IP address?
+8.9k Golang : Convert octal value to string to deal with leading zero problem
+7.8k Golang : Build and compile multiple source files
+7.7k nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)