インデックスの範囲外にアクセスした場合に例外を起こさずにnilを返すExtension
extension CollectionType {
subscript (safe index: Index) -> Generator.Element? {
return indices.contains(index) ? self[index] : nil
}
}
let numbers = [1,2,3,4]
numbers[safe:2] //2
numbers[safe:5] //nil