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)