2015-10-27 71 views
0

我想創建一個函數,接收多種類型的結構並將這些指針值添加到另一個函數。GO多指針

實施例:

type Model1 struct { 
    Name string 
} 

type Model2 struct { 
    Type bool 
} 

func MyFunc(value ...interface{}) { 
    OtherFunc(value...) 
} 

func main() { 
    MyFunc(new(Model), new(Mode2)); 
} 

的問題是,OtherFunc只允許&value, &value, etc作爲參數。有辦法通過像OtherFunc(&value...)這些值?

+0

'OtherFunc'的簽名是什麼?它是'OtherFunc(values ... inteface {})'還是別的? – captncraig

+0

我使用** gorm **,簽名是'func(s * DB)AutoMigrate(values ... interface {})* DB' –

回答

3

我不確定這會完全解決您的問題,但是,您所要求的確切內容是該語言的一項功能。你只需要使用複合文字語法來實例化而不是新的。所以你可以這樣做來傳遞指針; MyFunc(&Model{}, &Mode2{})

事情是,你還是會被處理的interface{}MyFunc所以我不知道,這將只是能夠打電話OtherFunc沒有一些拆箱(可能會是一個類型斷言,如果你想獲得技術)。