-2

我有一个不干净的代码。我想增加Counter结构,NameLike但我认为这无效。

package main

import "fmt"

type NameLike struct {
    Name    string
    Counter int
}

func main() {
    sosmed := make(map[string]NameLike)

    sosmed["rizal"] = NameLike{"Rizal Arfiyan", 10}

    for i := 1; i < 10; i++ {
        sosmed["rizal"] = NameLike{
            Counter: sosmed["rizal"].Counter + 1,
        }
    }

    fmt.Println(sosmed)
}

你对这段代码有什么想法,让它干净吗?

sosmed["rizal"] = NameLike{
    Counter: sosmed["rizal"].Counter + 1,
}

Golang Playground的这个链接

4

1 回答 1

1

您可以采取一些方法来简化此代码。

当前地图NameLike传递。如果您通过引用传递,您可以简化一些事情:

package main

import "fmt"

type NameLike struct {
    Name    string
    Counter int
}

func main() {
    sosmed := make(map[string]*NameLike)
    sosmed["rizal"] = &NameLike{"Rizal Arfiyan", 10}

    for i := 1; i < 10; i++ {
    sosmed["rizal"].Counter++
    }

    fmt.Println(sosmed["rizal"])
}

https://play.golang.org/p/-xvCJyqQ6V0

于 2021-10-07T15:29:45.357 回答