github.com/keysonzzz/kmg@v0.0.0-20151121023212-05317bfd7d39/kmgType/StringEnum.go (about) 1 package kmgType 2 3 import ( 4 "fmt" 5 "reflect" 6 ) 7 8 type StringEnum interface { 9 GetEnumList() []string //GetEnumList get all list of this type enum ,should only depend on type 10 } 11 12 func IsEnumExist(enum StringEnum) bool { 13 v := reflect.ValueOf(enum) 14 if v.Kind() != reflect.String { 15 panic(fmt.Errorf("[IsEnumExist] you should pass in a type which underlying type is string ,Get:%s", v.Kind())) 16 } 17 return IsEnumExistString(enum, v.String()) 18 } 19 20 func IsEnumExistString(enum StringEnum, s string) bool { 21 for _, enumItem := range enum.GetEnumList() { 22 if s == enumItem { 23 return true 24 } 25 } 26 return false 27 }