map struct golang中counter的最佳实践
Best practice of counter in map struct golang
我的代码不干净。我想在 NameLike
的结构中增加 Counter
但我认为这没有效果。
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,
}
这个 link 为 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"])
}
我的代码不干净。我想在 NameLike
的结构中增加 Counter
但我认为这没有效果。
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,
}
这个 link 为 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"])
}