> On Dec 18, 2015, at 5:23 PM, Joe Groff via swift-evolution > <[email protected]> wrote: > > For Swift 3, we're planning to phase out 'var' parameters in functions, and > we're also making it so that language keywords are valid argument labels. > With both of these changes pending, I have a hard time not reading: > > func foo(inout x: Int) > > as an argument labeled `inout` instead of an unlabeled argument bound to `x`. > Once `var` is phased out, `inout` would also be the only remaining case where > quoting is necessary to use a name as an argument label. The `inout` keyword > has always struck me as weird, since it violates definition-follows-use—maybe > we should replace it with the `&` sigil, mirroring its usage in call sites.
-1 “inout” is intended to communicate (or at least hint at) the copy-in / copy-out behavior of the argument. It is also there to enable other parameter modifiers, which can enable other more advanced parameters models in the future (e.g. rust-style borrowing). -Chris
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
