すらぼうの開発ノート

モバイルアプリエンジニアのメモ

【Swift】配列から要素をランダムに取得する方法

配列からランダムに要素を取得する方法を説明する。

例として次の配列を使い説明する。

let colorCandidates: [Color] = [
    Color.black, 
    Color.blue, 
    Color.red, 
    Color.green, 
    Color.yellow, 
    Color.orange, 
    Color.pink
]

インデックスで指定する

配列の要素はインデックスを指定すると取得できる。

var element = 配列[インデックス]

なのでインデックスに乱数を入れれば、ランダムに要素が取得できる。

var index: Int = Int.random(in: 0..< colorCandidates.count)

var element = colorCandidates[index]

ランダムにIntを取得する範囲は、countの1少ない値を入れる。


randomElement()を使う

randomElement()を使用すると、インデックスを指定せずとも要素をランダムに取得できる

var element = 配列.randomElement()

この時返される値はOptional型なので、値を使用するにはアンラップが必要。

var element = colorCandidates.randomElement()

print(element!)