I’m not OP, but I imagine you can pattern match on the type. I don’t think that’s a compelling reason to add this feature though. I’d rather have active-patterns <https://docs.microsoft.com/en-us/dotnet/articles/fsharp/language-reference/active-patterns> for structs.
> On Mar 2, 2017, at 3:13 PM, Slava Pestov via swift-evolution > <[email protected]> wrote: > >> >> On Mar 2, 2017, at 3:24 AM, Anton Zhilin via swift-evolution >> <[email protected] <mailto:[email protected]>> wrote: >> >> I think that tuples should remain what they are now. Static-length vectors >> should be types on their own and interact with tuples, with structs and with >> Array<…> in the same way. >> >> newtype should be what enables extension of tuples: >> >> > Does newtype add any new capability that’s not already covered by defining a > struct? > > Slava > >> newtype Money = (Int, Int) >> >> extension Money: CustomStringConvertible { >> var description: String { >> return String(format: "$%d.%02d", arguments: [getSelfFirst, >> getSelfSecond]) >> } >> } >> >> let x = (0, 42) >> let y = x as Money // error >> print(x.description) // error >> >> let z = Money(0, 42) >> print(z.description) //=> $0.42 >> Here, getSelfFirst and getSelfSecond are placeholders for some syntax to >> access the underlying type. >> >> _______________________________________________ >> swift-evolution mailing list >> [email protected] <mailto:[email protected]> >> https://lists.swift.org/mailman/listinfo/swift-evolution >> <https://lists.swift.org/mailman/listinfo/swift-evolution> > > _______________________________________________ > swift-evolution mailing list > [email protected] <mailto:[email protected]> > https://lists.swift.org/mailman/listinfo/swift-evolution > <https://lists.swift.org/mailman/listinfo/swift-evolution>
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
