我正在編寫一個函數(shù),該函數(shù)從數(shù)據(jù)庫中檢索任意數(shù)據(jù),并返回帶有結(jié)果的結(jié)構(gòu)片段。數(shù)據(jù)結(jié)構(gòu)由用戶在 ItemFactory 中定義。然后用戶在工廠上實現(xiàn)方法,創(chuàng)建空結(jié)構(gòu):func (t Example) GenerateEmptyItem() interface{} {
return &Example{}
}我正在嘗試對Example. 我需要能夠使用返回的任何內(nèi)容來調(diào)用諸如 之類的函數(shù)len(),同時保持它的通用性以允許它由“通用”函數(shù)返回。我不能簡單地擁有這樣的東西,因為接口切片的底層數(shù)據(jù)分配與示例切片不同:func (t Country) GenerateEmptyItems() []interface{} {
return []Country{} //Error
}是否可以使用指向切片的指針,例如&[]Example{}并將其作為 傳遞interface{},然后仍然可以將其用作切片?還是我做錯了?請記住,我不知道編譯時數(shù)據(jù)的類型,所以我不能簡單地強制轉(zhuǎn)換。我感謝任何幫助。如果我能澄清任何事情,請告訴我。
在 Go 中傳遞任意切片
慕田峪7331174
2023-05-15 14:29:42