2015-03-13 95 views
0

如果我有不同形式的用户结构被传递到我的应用程序有没有一种方法来检查嵌入式结构是否是外部结构的类型?如何检查外部类型是否是内部类型?

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

使用http://golang.org/pkg/reflect/来判断它是否是原始用户结构或继承的结构。 – 2015-03-13 17:21:57

回答

1

根据你的需要,你有两个主要的方法:reflect.TypeOf,和type swtich

您将使用第一个将接口的类​​型与另一个接口的类型进行比较。例如:

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

您将使用第二个接口来执行特定的操作。例如:

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