logoalt Hacker News

hiccuphippotoday at 3:33 PM1 replyview on HN

I see it this way, the full signature for defining a variable is:

    var foo: Foo = Foo{};
There's two ways to shorten it:

    var foo = Foo{};
    var foo: Foo = .{};
It can infer the type of the var from the right hand side; or the type of the right side from the type of the var.

So when you see .{} as an argument, it is inferring the type from the function signature. It happens to be empty only because it's using default values (or is a tuple with 0 items).

Edit: fixed the extra dots.


Replies

dnauticstoday at 3:37 PM

that's not quite right.

1) It's var foo = Foo{...}; (no intervening dot)

2) I think parent commenter is referring to function call use case call_my_func(.{...})

show 1 reply