登录
首页 >  Golang >  Go问答

golang中实现struct计数器的最佳方法

来源:stackoverflow

时间:2024-02-24 23:03:26 149浏览 收藏

大家好,我们又见面了啊~本文《golang中实现struct计数器的最佳方法》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多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,
}

此链接为 golang 演示


正确答案


您可以采取几种方法来简化此代码。

当前地图按传递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

以上就是《golang中实现struct计数器的最佳方法》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>