为什么在Golang结构创建中出现逗号?

I have a struct:

type nameSorter struct {
    names []Name
    by    func(s1, s2 *Name) bool

Which is used in this method. What is going on with that comma? If I remove it there is a syntax error.

func (by By) Sort(names []Name) {
        sorter := &nameSorter{
            names: names,
            by:    by, //why does there have to be a comma here?
        }
        sort.Sort(sorter)

Also, the code below works perfectly fine and seems to be more clear.

func (by By) Sort(names []Name) {
    sorter := &nameSorter{names, by}
    sort.Sort(sorter)

For more context this code is part of a series of declarations for sorting of a custom type that looks like this:

By(lastNameSort).Sort(Names)

This is how go works, and go is strict with things like comma and parentheses.

The good thing about this notion is that when adding or deleting a line, it does not affect other line. Suppose the last comma can be omitted, if you want to add a field after it, you have to add the comma back.

See this post: https://dave.cheney.net/2014/10/04/that-trailing-comma.