Go 使用一个函数初始化结构中的多个值

Go 使用一个函数初始化结构中的多个值,go,struct,Go,Struct,我想使用相同的函数初始化结构中的多个变量,如下所示: 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 } 但是,我不能,因为在创建结构时必须使

我想使用相同的函数初始化结构中的多个变量,如下所示:

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   
}
但是,我不能,因为在创建结构时必须使用
初始化变量,有没有任何方法可以像上面的代码一样执行有效的操作?

使用“您不能”

使用tuple,您可以:

测试它:

p := newtemp(2)
fmt.Println(p)
输出(在上尝试):


直接从函数返回结构怎么样?您可以让初始化器func获取引用:func初始值设定项(i1*int,i2*int){*i1=1;*i2=2}并传递t:=&temp{};初始值设定项(&t.i,&t.k)进入它,但对我来说,这看起来像是一个黑客,你能详细说明一下为什么你想把这个初始值设定项函数从newTemp中分离出来吗?“我想。”这不是一个很好的问题。
p := newtemp(2)
fmt.Println(p)
&{4 6}