簡體   English   中英

使用一個函數在結構中初始化多個值

[英]Initialize multiple values in a struct using one function

我想使用相同的函數在結構中初始化多個變量,如下所示:

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   
}

但是,由於創建結構時必須使用:來初始化變量,我不能這樣做,有什么辦法可以執行有效但仍像上面的代碼一樣的事情嗎?

使用復合文字不能。

使用元組分配,您可以:

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}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM