go 编译 method has pointer receiverd 问题解决

淩亂°似流年 2023-02-16 09:22 81阅读 0赞

go 常见问题记录

问题出现方式:接口赋值没有使用 &

  1. type Service interface {
  2. Identify(ctx context.Context, Data []byte) (int, error)
  3. }
  4. type VadService struct{}
  5. func (s *VadService) Identify(ctx context.Context, Data []byte) (int, error) {
  6. return 0,nil;
  7. }
  8. func test(){
  9. // 此处会报错, Identify method has pointer receiver
  10. var svc Service = VadService{}
  11. // 接口类型转换
  12. var svc1 Service
  13. // 此处会报错:Identify method has pointer receiver
  14. svc1 = svc1.(VadService)
  15. }

处理: 加上&,或*

  1. func test(){
  2. var svc Service = &VadService{}
  3. var svc1 Service
  4. svc1 = svc1.(*VadService)
  5. }

发表评论

表情:
评论列表 (有 0 条评论,81人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Go交叉编译

    交叉编译是指在一个硬件平台生成另一个硬件平台的可执行文件。而Go提供了非常方便的交叉编译方式。 如何编译 Go交叉编译,涉及到几个环境变量的设置: GOARCH、GOOS和

    相关 go交叉编译

    指定叉编译目标: GOARCH 目标平台(编译后的目标平台)的处理器架构(386、amd64、arm) GOOS 目标平台(编译后的目标平台)的操作系统(darwin、