[swift-evolution] Proposal Draft: Optional Upgrading Assignment.
Félix Cloutier
felixcca at yahoo.ca
Thu Feb 4 02:51:23 CST 2016
Second option: use `let y = Optional(x)`.
Félix
> Le 4 févr. 2016 à 03:28:09, Paul Ossenbruggen via swift-evolution <swift-evolution at swift.org> a écrit :
>
> Draft Proposal feedback welcome.
>
> ## Introduction
>
> Currently to make a optional from a value the type name must be repeated:
>
> let x = “Some Value”
> let y : String? = x
>
> This takes away some of the advantage of type inference because the very next line I must specify the type.
>
> ## Proposal
>
> I propose the following syntax:
>
> let y? = x
>
> This binds a new optional y which wraps the same value of x. It follows the same conventions as var and let that currently exist in the language.
>
> The advantages: this is easier to read, more compact, and lets type inference determine the type.
>
> If let and other conditionals would not support this syntax and optionals of optionals is not supported. So let x?? = y would not result in an optional optional. Also if y was an optional it would not let you upgrade that.
>
> ## Detailed Design
>
> The grammar:
>
> let optionalValue? = value
>
> This would not make sense in the if let, (guard let) context because if let unwraps the value, so this would be an error.
>
> This should not conflict with pattern matching as that requires the case keyword.
>
> Wrapping optional in an optional is an error.
>
> ## Impact on existing code
>
> The current syntax will continue to exist so it will have no impact on existing code.
>
> ## Alternatives Considered
>
> None.
>
>
> _______________________________________________
> 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/20160204/ed348331/attachment.html>
More information about the swift-evolution
mailing list