You’re completely right, but we don’t need to change the swift language to fix
that. As of 3f19714, which I just pushed, we now emit this error message
(which includes a fixit hint to insert the colon):
t.swift:2:33: error: use [:] to get an empty dictionary literal
var distanceCache: [Int: Int] = []
^
:
instead of:
t.swift:2:33: error: contextual type '[Int : Int]' cannot be used with array
literal
var distanceCache: [Int: Int] = []
^~
That should address the problem, thanks for pointing this out!
-Chris
> On Jan 5, 2016, at 4:51 AM, James Campbell via swift-evolution
> <[email protected]> wrote:
>
> The problem for me is that is so counter intuitive I didn't even know you
> could do that.
>
> On Tue, Jan 5, 2016 at 12:50 PM, Jeremy Pereira
> <[email protected] <mailto:[email protected]>>
> wrote:
> I don’t understand what the problem is
>
> > On 5 Jan 2016, at 12:39, James Campbell via swift-evolution
> > <[email protected] <mailto:[email protected]>> wrote:
> >
> > See this code:
> > var distanceCache: [Int: Int] = Dictionary<Int, Int>()
> >
> > It is very long and tedious to write especially if what I am storing
> > changes.
> >
> > I propose we be allowed to do the following:
> > var distanceCache: [Int: Int] = []
>
> You can do
>
> var distanceCache: [Int: Int] = [:]
>
> Also
>
> var distanceCache2 = [Int: Int]()
>
>
> > Perhaps this dictionary syntax is just confusing and it was a bad idea to
> > make it the same as an array. Most languages use "{" so why did swift
> > choose to share "[" with arrays and dictionaries.
>
> It’s not the same, you need the colons inside. I imagine that braces were
> discarded on the grounds that it would confuse the compiler with respect to
> closures, for example
>
> var myClosure = {} // is a variable of type () -> ()
>
>
> >
> > --
> > Wizard
> > [email protected] <mailto:[email protected]>
> > +44 7523 279 698 <tel:%2B44%207523%20279%20698>
> > _______________________________________________
> > swift-evolution mailing list
> > [email protected] <mailto:[email protected]>
> > https://lists.swift.org/mailman/listinfo/swift-evolution
> > <https://lists.swift.org/mailman/listinfo/swift-evolution>
>
>
>
>
> --
> Wizard
> [email protected] <mailto:[email protected]>
> +44 7523 279 698
> _______________________________________________
> swift-evolution mailing list
> [email protected] <mailto:[email protected]>
> https://lists.swift.org/mailman/listinfo/swift-evolution
> <https://lists.swift.org/mailman/listinfo/swift-evolution>
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution