登录
首页 >  Golang >  Go问答

为何这个类型不能声明为error类型

来源:SegmentFault

时间:2023-02-16 15:32:50 388浏览 收藏

怎么入门Golang编程?需要学习哪些知识点?这是新手们刚接触编程时常见的问题;下面golang学习网就来给大家整理分享一些知识点,希望能够给初学者一些帮助。本篇文章就来介绍《为何这个类型不能声明为error类型》,涉及到go,有需要的可以收藏一下

问题内容

package main

import "fmt"

type Test struct {
    a string
}

func (t *Test)Error() string{
    return  t.a
}

func main() {
    test1 := new(Test)
    test1.a = "oops"

   p := *test1
    hasError(p)
}
func hasError (e error){
    fmt.Printf("%s",e.Error())
}

我想要 把这个类型声明为error类型的时候就会出错

  cannot use *test1 (type Test) as type error in argument to hasError:
    Test does not implement error (Error method has pointer receiver)

正确答案

应该传值 ,传指针是不不行的

package main

import "fmt"

type Test struct {
    a string
}

func (t *Test)Error() string{
    return  t.a
}

func main() {
    test1 := new(Test)
    test1.a = "oops"

   p := *test1
////
    hasError(&p)
}
func hasError (e error){
    fmt.Printf("%s",e.Error())
}

文中关于golang的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《为何这个类型不能声明为error类型》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表