我有一個腳本,它根據用戶輸入從不同的數據源中提取,具有通用界面和每個數據源的類型。每個數據源都有一個方法來獲取該特定源的元數據。我正在努力理解idomatic Go 實現以根據 input 切換類型。這個例子不能編譯,但它是最能說明我想要做什么的版本:type Post interface { GetMetadata() bool}type YouTubeVideo struct { ID string Title string ChannelID string ChannelTitle string PublishedAt string}func (ig *YouTubeVideo) GetMetadata() bool { // ...}type InstagramPic struct { ID string ShortCode string Type string Title string PublishedAt string}func (ig *InstagramPic) GetMetadata() bool { // ...}func main() { var thePost Post switch domain { case "youtube": thePost = new(YouTubeVideo) thePost.ID = pid case "instagram": thePost = new(InstagramPic) thePost.ShortCode = pid } thePost.GetMetadata() fmt.Println(thePost.title)}
- 1 回答
- 0 關注
- 177 瀏覽
添加回答
舉報
0/150
提交
取消
