登录
首页 >  Golang >  Go问答

更改函数中的结构字段或返回值

来源:stackoverflow

时间:2024-04-04 17:27:38 306浏览 收藏

在IT行业这个发展更新速度很快的行业,只有不停止的学习,才不会被行业所淘汰。如果你是Golang学习者,那么本文《更改函数中的结构字段或返回值》就很适合你!本篇内容主要包括##content_title##,希望对大家的知识积累有所帮助,助力实战开发!

问题内容

最终,这个问题肯定取决于个人喜好。尽管如此,我还是想尝试一下找出哪种风格是首选。

我最近注意到我的代码中存在不一致之处。我有一个包含一些字段的结构。现在的问题是,当我需要调用函数来获取我想要设置的值时,编辑此字段的惯用方法是什么。我是在函数内部设置值,还是返回它并在调用函数中设置它?

type superstruct struct {
    onevalue     string
    anothervalue string
}

func (s *superstruct) makeanothervalue() {
    s.anothervalue = "hello there"
}

func main() {
    superstruct := superstruct{}
    superstruct.makeanothervalue()
}

或者(具有相同的结构)

func (s *SuperStruct) makeAnotherValue() string {
    return "Hello there"
}

func main() {
    superStruct := SuperStruct{}
    superStruct.AnotherValue = superStruct.makeAnotherValue()
}

我知道在某些情况下,这些方法中只有一种有意义。但我经常发现自己处于两者皆有可能的境地。我想第二种方式可以更好地保护,但有时这不是问题。


解决方案


我认为惯用的做法是完全删除你的函数:

func main() {
    superstruct := superstruct{anothervalue:"hello there"}
}

func main() {
    superStruct := SuperStruct{}
    ...
    superStruct.AnotherValue = "Hello there"
}

除非绝对必要,否则不要构建 getters/setters/create 函数,只需完成所需的工作即可。如果您只是设置一个简单的字段,则在大多数情况下不需要工厂来生成字段值。如果您认为该函数是必要的,那么它需要比这复杂得多(至少几行),并且通常称为 newanothervalue 并且不附加到父结构。

通过另一个函数/结构的每次间接都会使代码更难理解。

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

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