2015-03-13 92 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() 
}