どうも、ちょげ(@chogetarou)です。
Shuffle()を使って配列(array)をシャッフルしてランダムに並び替える方法を紹介します。
方法

Shuffle()を使って配列(array)をシャッフルしてランダムに並び替えるには、関数を使います。
まず、「math/rand」をインポートします。
import "math/rand"
次に、randからShuffle()を呼び出します。
Shuffle()の第1引数に配列の要素数、第2引数に整数の2つの引数を持つ関数を指定します。
そして、関数の処理で、配列の関数の第1引数と第2引数のインデックスの要素を入れ替えます。
//arr=対象の配列
rand.Shuffle(len(arr), func(i, j int) {
arr[i], arr[j] = arr[j], arr[i] //配列の要素を入れ替える
})
上記のrand.Shuffle()は、要素を入れ替えた配列(array)をシャッフルします。
使用例
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
numbers := [5]string{"one", "two", "three", "four", "five"}
rand.Seed(time.Now().UnixNano()) //乱数のシード設定
rand.Shuffle(len(numbers), func(i, j int) {
numbers[i], numbers[j] = numbers[j], numbers[i]
})
fmt.Println(numbers)
}
出力:
[four one two five three]
コメント