美文网首页
Golang判断对象是某个结构体的实例

Golang判断对象是某个结构体的实例

作者: CaiGuangyin | 来源:发表于2022-04-27 12:34 被阅读0次
package main

import "fmt"

type Error struct {
    Code    int
    Msg     string
    UserMsg string
}

func setErrorMsg(err *Error, value interface{})  {
    err.Msg = fmt.Sprintf(err.Msg, value)
}

func main() {
    e := Error{
        Code:    400403,
        Msg:     "error: %v",
        UserMsg: "错误",
    }

    setErrorMsg(&e, "hello world")
    fmt.Println(e)

    // 断结构体对象 e 是 结构体Error的实例
    _, ok1 := interface{}(e).(Error)
    fmt.Println("ok1: ",ok1)   // 输出OK
}

输出结果如下:

{400403 error: hello world 错误}
ok1:  true

用对象进行断言时,需要先将对象转换成空接口类型: interface{}(e)

相关文章

网友评论

      本文标题:Golang判断对象是某个结构体的实例

      本文链接:https://www.haomeiwen.com/subject/jfakyrtx.html