Is there a way, similar to using if let and/or optionals, to test whether you are about to index an empty buffer in Swift?
1 Answer
Define your own:
extension Array {
func ref (i:Int) -> T? {
return 0 <= i && i < count ? self[i] : nil
}
}
The ref() function returns an optional, so it can be nil, and you can use the if let syntax to access the returned value from ref() when it exists. You would use this as such:
var myA = [10,20,30]
if let val = myA.ref(index) {
// Use 'val' if index is < 3
}
else {
// Do this if the index is too high
}
2 Comments
webmagnets
I don't understand this very well. Can you show me how to use it and maybe what it is doing?
osrl
I think ref needs a better name. But I couldn't think one.
array.count) GoZoner gives an example in his answer.