> 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

Reply via email to