我想使用相同的函数初始化结构中的多个变量,如下所示:
type temp struct {
i int
k int
}
func newtemp(age int) *temp{
return &temp{
i, k := initializer(age)
}
}
func initializer(age int)(int, int){
return age * 2, age * 3
}
但是,我不能因为在创建结构时必须使用:
来初始化变量,有什么方法可以做一些有效的事情,就像上面的代码一样?
答案 0 :(得分:5)
使用composite literal你不能。
使用元组assignment,您可以:
func newtemp(age int) *temp{
t := temp{}
t.i, t.k = initializer(age)
return &t
}
测试它:
p := newtemp(2)
fmt.Println(p)
输出(在Go Playground上尝试):
&{4 6}