Hi Huges, You can achieve a very similar result like this:
let x = 123 let y: Optional = x The generic arguments can be inferred in more complicated cases too, for example: let z: Set = [1, 2, 3] Which creates a Set<Int> rather than an Array<Int>. I hope this helps! Andrew Bennett On Thu, Mar 24, 2016 at 9:22 PM, Hugues Bernet-Rollande via swift-evolution <[email protected]> wrote: > In a strongly typed language, such as Swift is, type inference is greatly > appreciated as it declutter the instance type definition. > > For example, in the following statement, the compiler easily deduct the > type of `aString` by the return type of `String.init()` > > ``` > let aString = String() > ``` > > Optional are generic enum which can contain a value of a generic type or > nil ( > https://github.com/apple/swift/blob/master/stdlib/public/core/Optional.swift > ) > > Sometime you may want specify that the instance is of type optional in > which even if you are a the same time assigning a value to this instance. > In which case you loose the type inference mechanism and you have to > define both (the optionality as well as the type). > For example, you may want specify an optional String with a default value. > > ``` > var a:String? = String() > // or > var b = String() as String? > // or > var c:Optional<String> = String() > ``` > > But the compiler can already infer the variable type from this assignment, > it just miss the "optionality" of the variable. > It would be nice to be able to express this. > > Then for, I propose the following syntax evolution: > > ``` > var a:? = String() > // and/or (not recommended because more prone to typo and unclear...) > var a = String() as? > ``` > > This would allow for more synthetic optional declaration. > > I've draft a proposal on my `swift-evolution` fork: > > https://github.com/huguesbr/swift-evolution/blob/optionality-type-with-type-inference/proposals/0057-optionality-type-with-type-inference.md > > Let me know what you think. > > > Hugues BERNET-ROLLANDE > > > -- > > [email protected] > > http://www.xdev.fr > > http://www.linkedin.com/in/huguesbr > > _______________________________________________ > swift-evolution mailing list > [email protected] > https://lists.swift.org/mailman/listinfo/swift-evolution > >
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
