第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Go 中傳遞任意切片

在 Go 中傳遞任意切片

Go
慕田峪7331174 2023-05-15 14:29:42
我正在編寫一個函數(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)換。我感謝任何幫助。如果我能澄清任何事情,請告訴我。
查看完整描述

1 回答

?
呼喚遠方

TA貢獻1856條經(jīng)驗 獲得超11個贊

你不能直接這樣做。

您可以使用reflection,但這不是一個很好的解決方案。通常的方法是定義一個接口類型,讓您以相同的方式與所有數(shù)據(jù)進行交互。一個很好的例子就是sort包。


查看完整回答
反對 回復(fù) 2023-05-15
  • 1 回答
  • 0 關(guān)注
  • 172 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號