如何检查外部类型是否是一种内部类型?

时间:2015-03-13 17:17:23

标签: go

如果我在我的应用程序周围传递了不同形式的用户结构,有没有办法检查嵌入式结构是否是外部结构的一种类型?

type (
    user struct {
        name  string
        email string
    }
    admin struct {
        user
        level string
    }
)

1 个答案:

答案 0 :(得分:1)

根据您的需要,您有两种主要方法:reflect.TypeOftype swtich

您将使用第一个来比较接口的类型和另一个接口的类型。例如:

if reflect.TypeOf(a) == reflect.TypeOf(b) {
    doSomething()
}

在给定接口类型的情况下,您将使用秒来执行特定操作。例如:

switch a.(type) {
    case User:
        doSomething()
    case Admin:
        doSomeOtherThing()
}