iOSエンジニアのつぶやき

毎朝8:30に iOS 関連の技術について1つぶやいています。まれに釣りについてつぶやく可能性があります。

【Swift】Arrayから特定の範囲を取り出す際に index out of range を回避する

# 結論

subscriptを使ってArrayに下記のようなextensionをはやしておくと便利です。戻り値がArraySlice<Element>?になることで、範囲外を取り出そうとした場合でもnil回避ができます。

extension Array {
    subscript(safe range: Range<Index>) -> ArraySlice<Element>? {
        if range.endIndex > endIndex {
            return range.startIndex >= endIndex ? nil : self[range.startIndex..<endIndex]
        } else {
            return self[range]
        }
    }
}

ちなみに、使い方はこんな感じ。

array[safe: 0..<2]

てな感じで本日も以上となります🍺

その他の記事

yamatooo.blog

yamatooo.blog

yamatooo.blog