[swift-evolution] When to use argument labels, part DEUX (was: when to use argument labels (a new approach))

ilya ilya.nikokoshev at gmail.com
Sun Feb 7 12:51:39 CST 2016


One can consider everything inside the parentheses to be an argument list
and read them as "with/using an argument list". It works well if the
preceding part has a verb, such as

copy(zone: ...)
-> "Copy with [a single argument] zone equal to ..."

func doSomethingWith(completionHandler: (()->Void)? = nil)
-> "doSomething with a given completion handler or do something with a
default argument list."

Not sure if there's any value in spelling it out. I believe we use "with"
so it in Objective-C mostly out of necessity and can easily omit it in
Swift.

Ilya.

On Sat, Feb 6, 2016 at 10:12 PM, Matthew Judge via swift-evolution <
swift-evolution at swift.org> wrote:

> This issue is going to surface any time a method with a preposition and a
> single defaulted argument. I would say:
>
> copy(with: )
>
> Although I think we might have problematic results no matter what
> guidelines we use for
>
> func doSomethingWith(completionHandler: (()->Void)? = nil)
>
> since this can be called as
>
> doSomethingWith() // doSomething()
>
> Or
>
> doSomethingWith {...} // doSomething {...}
>
> > On Feb 6, 2016, at 15:47, Jean-Daniel Dupas via swift-evolution <
> swift-evolution at swift.org> wrote:
> >
> >
> >> Le 6 févr. 2016 à 21:15, Douglas Gregor via swift-evolution <
> swift-evolution at swift.org> a écrit :
> >>
> >>
> >>
> >> Sent from my iPhone
> >>
> >>> On Feb 6, 2016, at 9:21 AM, Thorsten Seitz <tseitz42 at icloud.com>
> wrote:
> >>>
> >>> So the preposition should move into the argument label if the argument
> is optional?
> >>>
> >>> copy(withZone: zone = nil)
> >>
> >> Zone is redundant with type information.
> >>
> >> copy(with:)?
> >> copy(withZone:)?
> >
> > Wouldn’t it be possible to simply drop the copyWithZone: method that is
> deprecated for some times now (To quote the doc: Zones are ignored on iOS
> and 64-bit runtime on OS X. You should not use zones in current
> development).
> >
> >>
> >>> -Thorsten
> >>>
> >>>
> >>>> Am 06.02.2016 um 14:45 schrieb Matthew Judge via swift-evolution <
> swift-evolution at swift.org>:
> >>>>
> >>>> Very first method
> >>>>
> >>>> copyWith(zone: Zone = nil)
> >>>>
> >>>> can be called as
> >>>>
> >>>> copyWith()
> >>>>
> >>>> I'm assuming this is still something we don't want right?
> >>>>
> >>>>> On Feb 6, 2016, at 02:16, Douglas Gregor via swift-evolution <
> swift-evolution at swift.org> wrote:
> >>>>>
> >>>>>
> >>>>>> On Feb 5, 2016, at 1:32 PM, Dave Abrahams via swift-evolution <
> swift-evolution at swift.org> wrote:
> >>>>>>
> >>>>>>
> >>>>>> Given all the awesome feedback I've gotten on this thread, I went
> back
> >>>>>> to the drawing board and came up with something new; I think this
> one
> >>>>>> works.  The previously-stated goals still apply:
> >>>>>
> >>>>>> [snip goals]
> >>>>>
> >>>>>> P.S. Doug is presently working on generating new importer results,
> based
> >>>>>>    on these guidelines, for your perusal.  They should be ready
> soon.
> >>>>>
> >>>>> Here’s a link:
> >>>>>
> >>>>>
> https://github.com/apple/swift-3-api-guidelines-review/pull/10/files
> >>>>>
> >>>>> Feedback welcome!
> >>>>>
> >>>>>    - Doug
> >>>>>
> >>>>> _______________________________________________
> >>>>> swift-evolution mailing list
> >>>>> swift-evolution at swift.org
> >>>>> https://lists.swift.org/mailman/listinfo/swift-evolution
> >>>> _______________________________________________
> >>>> swift-evolution mailing list
> >>>> swift-evolution at swift.org
> >>>> https://lists.swift.org/mailman/listinfo/swift-evolution
> >> _______________________________________________
> >> swift-evolution mailing list
> >> swift-evolution at swift.org
> >> https://lists.swift.org/mailman/listinfo/swift-evolution
> >
> > _______________________________________________
> > swift-evolution mailing list
> > swift-evolution at swift.org
> > https://lists.swift.org/mailman/listinfo/swift-evolution
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160207/79f3b688/attachment.html>


More information about the swift-evolution mailing list