在Go中,假设我具有以下结构:
type Job struct {
totalTime int
timeToCompletion int
}
我初始化一个结构对象,如:
j := Job {totalTime : 10, timeToCompletion : 10}
约束是在创建结构时
timeToCompletion
始终等于totalTime
(以后可以更改)。在Go中有没有一种方法可以实现这一点,而不必初始化两个字段? 最佳答案
您无法避免必须两次指定该值,但是惯用的方法是为其创建类似于构造函数的创建函数:
func NewJob(time int) Job {
return Job{totalTime: time, timeToCompletion: time}
}
并将其传递给我们的
NewJob()
函数时,只需指定一次时间值:j := NewJob(10)