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}