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@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