The Go Programming Language
› http://golang.org/
› Go Playground
Go Projects
› Revel Web Framework
wangwenfan

问一个 golang 中 interface 问题

  •  
  •   wangwenfan · Nov 27, 2020 · 2370 views
    This topic created in 2168 days ago, the information mentioned may be changed or developed.

    调用方法返回值是一个 interface,为什么取不到里面的字段

    type error interface {
    	Error() string
    }
    
    

    调用和返回如下图,返回值 err 是下面 debug 里面的 vErr Screenshot_1.png

    6 replies  •  2020-11-27 10:57:56 +08:00
    rrfeng
    rrfeng
    Nov 27, 2020
    1
    err.Error()

    你是怎么得出来 .Errors 这个『东西』的??
    FinnBai
    FinnBai
    Nov 27, 2020
    2
    返回的是 interface,如果想用特定类型的属性,需要类型断言
    rrfeng
    rrfeng
    Nov 27, 2020
    3
    噢,需要转一下类型。
    err.(ValidationError)
    wangwenfan
    wangwenfan
    OP
    Nov 27, 2020
    4
    @rrfeng 刚刚转了,但是得到的是 false,
    ![Screenshot_2.png]( )
    Mark3K
    Mark3K
    Nov 27, 2020
    5
    @wangwenfan 看看是不是转错了类型: *jwt.ValidationError
    wangwenfan
    wangwenfan
    OP
    Nov 27, 2020
    6
    @baiyi @rrfeng,已解决,感谢,需要传 *ValidationError
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4919 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 07:56 · PVG 15:56 · LAX 23:56 · JFK 02:56
    ♥ Do have faith in what you're doing.