Sent from my iPad

> On May 13, 2016, at 1:07 AM, Patrick Smith via swift-evolution 
> <[email protected]> wrote:
> 
> 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")
>        )
>    }

+1 to the initialization use case.  You can do type-safe embedded data this 
way.  Similar to embedding JSON directly, but with type checking and no need 
for parsing.  In that use case the initializer calls may be intermingled with 
arrays and may have defaulted parameters.

If that use case matters at all allowing trailing commas in the arrays but not 
the initializer calls would *feel* inconsistent regardless of the technical 
distinction.


>    
>    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 
>> <[email protected]> wrote:
>> 
>> On May 12, 2016, at 4:50 PM, Joe Groff <[email protected]> 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
>> [email protected]
>> https://lists.swift.org/mailman/listinfo/swift-evolution
> 
> _______________________________________________
> swift-evolution mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to