我有一个脚本,它根据用户输入从不同的数据源中提取,具有通用界面和每个数据源的类型。每个数据源都有一个方法来获取该特定源的元数据。我正在努力理解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 回答
- 1 回答
- 0 关注
- 155 浏览
添加回答
举报
0/150
提交
取消