在 Go 中将 struct 字段的初始值设置为另一个字段的初始值

在 Go 中,假设我有这个结构:


type Job struct {

    totalTime int

    timeToCompletion int

}

我初始化了一个结构对象,如:


j := Job {totalTime : 10, timeToCompletion : 10}

其中约束timeToCompletion始终等于totalTime创建结构的时间(它们可以稍后更改)。有没有办法在 Go 中实现这一点,这样我就不必初始化两个字段?


白猪掌柜的
浏览 404回答 1
1回答

白板的微信

您无法避免必须两次指定该值,但一种惯用的方法是为其创建一个类似构造函数的创建者函数:func NewJob(time int) Job {    return Job{totalTime: time, timeToCompletion: time}}使用它,您只需在将时间值传递给我们的NewJob()函数时指定一次:j := NewJob(10)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go