[swift-evolution] [Review] SE-0084: Allow trailing commas in parameter lists and tuples
Patrick Smith
pgwsmith at gmail.com
Fri May 13 01:07:14 CDT 2016
I do it quite a lot, especially for initialising structs, enums. I use it to get the same benefits as a switch statement spread over several lines.
I think it’s often good to liberally apply new lines, as it aids legibility.
Here some sample code of mine using it:
extension ImageGraphic : JSONObjectRepresentable {
public init(source: JSONObjectDecoder) throws {
try self.init(
imageSource: source.decode("imageSource"),
width: source.decodeOptional("width"),
height: source.decodeOptional("height")
)
}
public func toJSON() -> JSON {
return .ObjectValue([
"imageSource": imageSource.toJSON(),
"width": width.toJSON(),
"height": height.toJSON()
])
}
}
> On 13 May 2016, at 3:01 PM, Chris Lattner via swift-evolution <swift-evolution at swift.org> wrote:
>
> On May 12, 2016, at 4:50 PM, Joe Groff <jgroff at apple.com> wrote:
>>>> --- a.swift
>>>> +++ a.swift
>>>> foo(
>>>> x: 0,
>>>> - y: 1
>>>> + y: 1,
>>>> + z: 2
>>>> )
>>>>
>>>> Trailing commas avoid this:
>>>>
>>>> --- a.swift
>>>> +++ a.swift
>>>> foo(
>>>> x: 0,
>>>> y: 1,
>>>> + z: 2,
>>>> )
>>>
>>> You’re arguing that you want to read Swift code written like this?
>>
>> I wouldn't mind it.
>
> I personally find that style repulsive :-) and I haven’t seen swift code commonly doing it. I’m not sure that we want to encourage it either.
>
>> The standard library already uses this style for function parameters, modulo the trailing comma, and I certainly prefer it to:
>>
>>> --- a.swift
>>> +++ a.swift
>>> foo( x: 0
>>> , y: 1
>>> + , z: 2
>>> )
>
> I agree that this is even worse, but I also haven’t seen this used in Swift code. Have you? Swift’s strictness with argument labels makes any of this pretty unappealing to use.
>
> If we were really concerned about this, a narrower way to solve the same problem would be to allow a comma before the ), but *only* when there is a newline between them. I still don’t see why we’d want to encourage this though.
>
> -Chris
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
More information about the swift-evolution
mailing list