[swift-evolution] Union instead of Optional

Tino Heth 2th at gmx.de
Mon May 16 10:23:21 CDT 2016


> Precisely. To me unions are to enums with associated type the same way tuples are to structs.
Me too — and I think it would be beautiful if it could be modeled that way, so that there is always a pair of a named and an anonymous variant for functions (closures), types (structs) and enums (yet to come). 

> One is named, has well-defined semantics, can conform to protocols, can have complex internal structure, can have methods, etc. The other is ad-hoc and lightweight, easy to define at the site of use, best suited for simple purposes, has special syntax to support it. 
That also true for closures, yet I'm very happy how flexible regular methods can be used as blocks.

> Even if we can extend tuples in the future, though, I wouldn't want structs to go away. When exceeding some level of complexity structs are just more explicit than tuples, and therefore easier to understand.
I don't think something as fundamental as structs should ever be removed, but imho it would be great to see some unification of concepts…

struct Point: Tuple<x: Float, y: Float> {
	// methods...
	// "inheritance for structs"-poposal delayed until Swift 4 ;-)
}


More information about the swift-evolution mailing list