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

编译错误:通过接口调用方法

编译错误:通过接口调用方法

Go
宝慕林4294392 2022-12-13 10:28:47
我正在学习 go 接口并尝试实现以下内容,但 vscode 向我显示编译错误,请求帮助。我错过了什么。谢谢你。package dataaccessimport (  "../domain")type IProductDataAccess interface {    GetProducts() ([]*domain.Product, error)    GetProduct(string) (*domain.Product, error)}var (    ProductDataAccess IProductDataAccess)type productDAO struct{}func init() {    ProductDataAccess = new(productDAO)}func (p *productDAO) GetProduct(productID string) (*domain.Product, error) {    return nil, nil}func (p *productDAO) GetProducts() ([]*domain.Product, error) {    return nil, nil}从如下所示的不同包中的组件对 IProductDataAccess 进行方法调用时,在编辑器中出现以下编译错误调用 dataaccess.IProductDataAccess.GetProduct 时没有足够的参数有(字符串)想要(dataaccess.IProductDataAccess,字符串)(WrongArgCount)调用 dataaccess.IProductDataAccess.GetProducts 时没有足够的参数有 () want (dataaccess.IProductDataAccess)compiler (WrongArgCount)package serviceimport (    "../dataaccess"    "../domain")type IProductService interface {    GetProducts() ([]*domain.Product, error)    GetProduct(string) (*domain.Product, error)}var (    ProductService IProductService)type productService struct{}func init() {    ProductService = new(productService)}func (p *productService) GetProduct(productID string) (*domain.Product, error) {    product, err := dataaccess.IProductDataAccess.GetProduct(productID)    if err != nil {        return nil, err    }    return product, nil}func (p *productService) GetProducts() ([]*domain.Product, error) {    products, err := dataaccess.IProductDataAccess.GetProducts()    if err != nil {        return nil, err    }    return products, nil}
查看完整描述

1 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

这条线看起来需要调整:

product, err := dataaccess.IProductDataAccess.GetProduct(productID)

dataaccess.IProductDataAccess是一个接口,而不是调用调用的实际对象。 dataaccess.ProductDataAccess是您要调用的页面上的单例实例。

我想你真的想要:

product, err := dataaccess.ProductDataAccess.GetProduct(productID)

同样对于 GetProducts 调用:

products, err := dataaccess.ProductDataAccess.GetProducts()


查看完整回答
反对 回复 2022-12-13
  • 1 回答
  • 0 关注
  • 130 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号