so how you call bar and get default values for a, b, c? why lost default value for that function? it is wired.
···
在 2016年7月7日,11:29,Douglas Gregor <dgregor@apple.com> 写道:
On Jul 6, 2016, at 8:25 PM, Cao, Jiannan via swift-evolution <swift-evolution@swift.org> wrote:
Don't agree with this one.
func foo(a: Int = 0, b: Int = 1, c: Int = 2) {
print(a, b, c)
}foo(a: 1, c: 3)
let bar = foo
bar(1, 3) will different than foo(a: 1, c: 3)
bar(1, 3) will result in an error, because “bar” is of type
(Int, Int, Int) -> Void
Default arguments are associated with function declarations, not function types.
- Doug
在 2016年7月7日,11:06,Chris Lattner <clattner@apple.com> 写道:
Proposal Link: swift-evolution/0111-remove-arg-label-type-significance.md at master · apple/swift-evolution · GitHub
The review of "SE-0111: Remove type system significance of function argument labels " ran from June 30 ... July 4, 2016. The proposal has been *accepted*:
The community and core team agree that this proposal will lead to a simplification and clarification of the type system, as well as a more clear user model for parameter labels. In response to community feedback, the core team is accepting the proposal with a revision to allow “purely cosmetic” parameter labels in closure types for documentation (as outlined in the alternatives section). The core team also wants to clarify that a call to a value of closure type would not allow use of any parameter labels, some interpretations thought that “arbitrary” parameter labels could be used.
Thank you to Austin Zheng for driving this discussion forward! I filed SR-2009 to track implementation work on this.
-Chris Lattner
Review Manager_______________________________________________
swift-evolution-announce mailing list
swift-evolution-announce@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution-announce_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution