[swift-evolution] Implicit Optionals for Tuples & Tuples as Function Parameter
Muhammad Tahir Vali
tahir.vali13 at gmail.com
Fri Nov 11 13:54:25 CST 2016
Im curious to know the reasoning behind why implicit-wrapped optionals
aren't allowed when creating tuples. Below is an example with type aliases
and anonymous tuples.
ex.
typealias Name = (first: String!, middle: String?, last: String!)
typealias Name = (first: String!, middle: String?, last: String!)!
var name : (first: String!, middle: String?, last: String!)
var name : (first: String!, middle: String?, last: String!)!
error from all 4 examples above:
Implicitly unwrapped optionals are only allowed at top level and as
function results
I also noticed that I can modify tuples using functions ONLY if I use
*inout*.
func name(Person : inout (first: String?, middle: String?, last: String?)) {
Person.first = "John"
Person.last = "Doe"
}
OR
func name(Person : inout Name) {
Person.first = "John"
Person.last = "Doe"
}
This is because tuples are passed into functions as 'let' constants. Why
not add the ability to modify a copy of the tuple inside the function ?
--
Best Regards,
Muhammad T. Vali
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20161111/6e88de4d/attachment.html>
More information about the swift-evolution
mailing list