It just occurs to me that you can't put none<T> in a [T], so on optional 
subscript would only be get and we would need the current subscript beside 
anyway.

I have no particular opinion on the main subject, I wonder what the order of 
magnitude would be that optimisation.

Pierre

> Le 20 janv. 2017 à 07:41, Russ Bishop via swift-evolution 
> <swift-evolution@swift.org> a écrit :
> 
> 
>> On Jan 19, 2017, at 4:17 PM, Xiaodi Wu via swift-evolution 
>> <swift-evolution@swift.org> wrote:
>> 
>> For those times when you _don't_ know how many elements there are, don't 
>> care, and for some reason can't be bothered to get `array.count`, but you 
>> need to explicitly access an element by its index *and* have a useful 
>> fallback value, IMO it's reasonable to have an alternative subscript like 
>> the proposed `array[lenient: 10]`. But with facilities like `for...in`, 
>> `map`, etc., and others like `count` and `enumerated`, it's hard to argue 
>> that it's nearly as common a scenario as those where you are given a 
>> known-good index.
>> 
> 
> I’m not sure why people keep asking for this; the extension is trivial so 
> anyone who wants it can have it:
> 
> extension Collection
> {
>     subscript(ifExists index: Index) -> Iterator.Element? {
>         guard index < self.endIndex else { return nil }
>         return self[index]
>     }
> }
> 
> // won't assert!
> myArray[ifExists: 42]
> 
> 
> 
> Russ
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to