[swift-evolution] Arrays Returning Optionals instead of Index Out of Bounds

Luis Henrique B. Sousa lshsousa at gmail.com
Mon Jun 6 12:45:31 CDT 2016


Thanks Vladimir,

The correct link is this one (with the additional min/max operations in the
implementation):
https://github.com/luish/swift-evolution/blob/proposal-lenient-collection-subscripts/proposals/nnnn-more-lenient-collections-subscripts.md

Here is the pull request on the swift-evolution repo:
https://github.com/apple/swift-evolution/pull/328

Any help or suggestion to improve the proposal is welcome. :-)

- Luis

On Mon, Jun 6, 2016 at 6:10 PM, Vladimir.S via swift-evolution <
swift-evolution at swift.org> wrote:

> Please find this draft of proposal(hope this is correct link for latest
> version):
>
> https://github.com/luish/swift-evolution/blob/more-lenient-subscripts/proposals/nnnn-more-lenient-collections-subscripts.md
>
> The main idea is to introduce 2 new subscript methods:  [clamping:] and
> [checking:]
>
> There was discussion in "[Proposal] More lenient subscript methods over
> Collections" and (older) "[Proposal] Safer half-open range operator"
>
>
> On 06.06.2016 19:50, Rob Norback via swift-evolution wrote:
>
>> Hi Everyone!
>>
>> This is my first time emailing the swift evolution list, so if this topic
>> has already been discussed please let me know.  I looked through all the
>> accepted and rejected proposals and it doesn't seem to be on there.
>>
>> The main thought is that dictionaries return optionals, so why not arrays?
>> Or other CollectionTypes for that matter.  I would think this would be the
>> expected behavior in this situation:
>>
>> var myArray:[String?] = []
>> print(myArray[4])
>> // EXC_BAD_INSTRUCTION, but could just be Optional(nil)
>>
>> Then you could do things like
>>
>> if let arrayValue = myArray[4] {
>>    // do something
>> }
>>
>> Of course you could simply check with with the count, but considering
>> Swift's use of optionals to represent empty variables rather than erroring
>> out or returning an empty String, I think this functionality would be
>> appropriate to include in the Swift standard library.
>>
>> And there's about 15,000 people who've looked for this functionality in
>> the
>> last year:
>>
>> http://stackoverflow.com/questions/25329186/safe-bounds-checked-array-lookup-in-swift-through-optional-bindings
>> .
>>
>> Please let me know what you think.
>>
>> Best,
>> Rob Norback
>>
>>
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-evolution
>>
>> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160606/dc30a0e8/attachment.html>


More information about the swift-evolution mailing list