> On Jan 17, 2017, at 03:40, Charlie Monroe via swift-evolution 
> <[email protected]> wrote:
> 
> I've come across multiple cases, where you simply know the array is never 
> empty and hence the optionality on first, last and behavior of a few other 
> members is slightly different. Also, there are cases where you want to 
> declare that you shouldn't pass an empty array e.g. into an initializer.
> 
> I was wondering whether Swift could have a specialized NonEmptyArray that 
> could be used throughout the stdlib - e.g. String.components(separatedBy:) 
> would return NonEmptyArray.
> 
> Thoughts?

I've tried to make such a type a few times... The struct itself isn't hard 
("var first:T; var tail:[T]"), but I never could figure out how to make 
`NonEmptyArray` conform to `ExpressibleByArrayLiteral` (because the protocol 
doesn't allow for failable inits) without just crashing if there wasn't at 
least one element.

Anyway, I'm not opposed to adding it, as long as there's a non-crashy way to 
assign array literals to them.

- Dave Sweeris
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to