我有一个不干净的代码。我想增加Counter
NameLike
struct的但我认为这并不是有效的。
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