为了账号安全,请及时绑定邮箱和手机立即绑定

使用接口和动态类型进行变量分配

使用接口和动态类型进行变量分配

Go
慕沐林林 2021-09-27 17:31:23
我有一个脚本,它根据用户输入从不同的数据源中提取,具有通用界面和每个数据源的类型。每个数据源都有一个方法来获取该特定源的元数据。我正在努力理解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
提交
取消
意见反馈 帮助中心 APP下载
官方微信