map结构中计数器的最佳实践



我有一个不干净的代码。我想增加CounterNameLikestruct的但我认为这并不是有效的。

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的链接

您可以采用几种方法来简化这段代码。

当前映射以通过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

相关内容

  • 没有找到相关文章

最新更新