[swift-evolution] Colon vs. equals
Andrew Bennett
cacoyi at gmail.com
Fri Feb 5 18:36:47 CST 2016
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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160206/b750e83e/attachment.html>
More information about the swift-evolution
mailing list