Struct 将一个结构字段的初始值设置为Go中另一个结构字段的初始值
在Go中,假设我有一个结构:Struct 将一个结构字段的初始值设置为Go中另一个结构字段的初始值,struct,go,initialization,Struct,Go,Initialization,在Go中,假设我有一个结构: type Job struct { totalTime int timeToCompletion int } 我初始化一个struct对象,如下所示: j := Job {totalTime : 10, timeToCompletion : 10} 其中,约束条件是在创建结构时,timeToCompletion始终等于totalTime(以后可以更改)。有没有一种方法可以在Go中实现这一点,这样我就不必初始化这两个字段?您不能避免必须两次指定该值
type Job struct {
totalTime int
timeToCompletion int
}
我初始化一个struct对象,如下所示:
j := Job {totalTime : 10, timeToCompletion : 10}
其中,约束条件是在创建结构时,
timeToCompletion
始终等于totalTime
(以后可以更改)。有没有一种方法可以在Go中实现这一点,这样我就不必初始化这两个字段?您不能避免必须两次指定该值,但一种惯用的方法是为它创建一个类似构造函数的creator函数:
func NewJob(time int) Job {
return Job{totalTime: time, timeToCompletion: time}
}
在将时间值传递给我们的NewJob()
函数时,使用它只需指定一次时间值:
j := NewJob(10)
太好了,如果没有内在的方式,我正在寻找这样一个成语。