Hacker News new | ask | show | jobs
by masklinn 1036 days ago
It can do that because Rust’s macros can have their own mini language at the top level, and can transform that into whatever data structure they want under the cover.

For better or for worse, Go doesn’t have that.

1 comments

Also funny story: in Perl “,” can be spelled “=>” specifically for this sort of use cases, when you write

    my %hash = (
        Foo => “bar”,
        Baz => “qux”,
    );
the behaviour is no different than

    my %hash = (
        Foo, “bar”,
        Baz, “qux”,
    );
it’s just that a literal plist in a hash context is interpreted as a hash.

Hence “=>” being called “fat comma” in perl.

Which means you can writer

    my %h = (a => b => c => d);
or

    my %h = (a, b => c, d);

they all mean the same thing.
That all sounds questionable.