Swift

2016-01-29, swift

shuffleを実装

ちょくちょく使うのに標準の実装には含まれていないんですね。Stackoverflowの例を参考に関数を作りました。引数の配列そのものを並べ替えるので値の渡し方に注意してください。

func shuffle<T>(inout array: [T]) {
    for i in 0..<array.count - 1 {
        let j = Int(arc4random_uniform(UInt32(array.count - i))) + i
        guard i != j else { continue }
        swap(&array[i], &array[j])
    }
}

Qiitaで見つけた方は、以下のようなエラーが出て使えませんでした。

wapping a location with itself is not supported

参考URL

この記事は役に立ちましたか?