亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

在 Go 中傳遞任意切片

在 Go 中傳遞任意切片

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

1 回答

?
呼喚遠方

TA貢獻1856條經驗 獲得超11個贊

你不能直接這樣做。

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


查看完整回答
反對 回復 2023-05-15
  • 1 回答
  • 0 關注
  • 174 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號