我正在学习 go 接口并尝试实现以下内容,但 vscode 向我显示编译错误,请求帮助。我错过了什么。谢谢你。
package dataaccess
import (
"../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 service
import (
"../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
}
宝慕林4294392
繁花不似锦
随时随地看视频慕课网APP
相关分类