文字っぽいの。

文字を書いています。写真も混ざります。

Swiftで配列の要素を安全に取得する。

毎回忘れるのでブログに書く。配列の要素を取得するとき、

if 0 <= index && index < array.count {
    let item = array[index]
}

のようなコードを書くと思う。ちょっと頭いい感じだと

if array.indices.contains(index) {
    let item = array[index]
}

とも書ける。ただこれはめんどくさいので、こういった拡張を書いておくと良い。

import Foundation

extension Collection {
    subscript (safe index: Index) -> Element? {
        return indices.contains(index) ? self[index] : nil
    }
}

こうすると

if let item = array[safe: index] {
    // ここでitemを使う
}

という書き方ができる。