[swift-evolution] Colon vs. equals

Maximilian H├╝nenberger m.huenenberger at me.com
Fri Feb 5 18:49:30 CST 2016


If ":" should be replaced by "=" than only at the call site to make it more consistent with variable declaration and initialization:

        myFunc(number = 4, string = 7)

        func myFunc(number: Int, string: String) {}

Although writing "=" instead of ":" in methods in 1.5 years Swift and over 20 years Objective-C would be a huge change.

- Maximilian

> Am 06.02.2016 um 01:36 schrieb Andrew Bennett via swift-evolution <swift-evolution at swift.org>:
> 
> Interesting point, I guess ":" in dictionary literals is to make the syntax unambiguous.
> 
> This is currently valid swift:
> 
>     let x = [a = b]
> 
> Its type is: Array<Void>. It seems like the syntax is clearer if the delimiter isn't a valid operator.
> 
> Also there's a problem with default value syntax:
> 
>     func test(a: Int = 123)
> 
> This would be hard to read with only "=":
> 
>     func test(a = Int = 123)
> 
> Also if the default value was an operator:
> 
>     func test(a = Int -> Int = =)
> 
> Granted you could change the less commonly used default syntax, but it's probably syntactically easier to differentiate user-controller delimiters (assignment) and compiler-controller delimiters (:,). The example with assignment in an array illustrates this.
> 
> I do agree '@available' though, it seems like it should be ":"
> 
> =)
> 
> 
>> On Sat, Feb 6, 2016 at 10:27 AM, Brent Royal-Gordon via swift-evolution <swift-evolution at swift.org> wrote:
>> This is perhaps a bit nitpicky, but I've noticed that Swift sometimes uses colon to separate names and values, and sometimes uses equals. It's vaguely maddening.
>> 
>> What do I mean? Well, our language has this:
>> 
>>         myFunc(foo, bar: baz)
>> 
>> But it also has:
>> 
>>         @available(iOS, introduced=7.0, deprecated=8.0)
>> 
>> You create a dictionary like this:
>> 
>>         let dict = ["key": "value"]
>> 
>> But you set it like this:
>> 
>>         dict["key"] = "value"
>> 
>> Is there some principle here? The @available case seems particularly strange to me, because those values read strongly like parameters to me.
>> 
>> --
>> Brent Royal-Gordon
>> Architechies
>> 
>> _______________________________________________
>> 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/20160206/68abe976/attachment.html>


More information about the swift-evolution mailing list