package constant import ( "fmt" ) // UserStatus 用户状态 type UserStatus string const ( UserStatusActive UserStatus = "NORMAL" // 用户状态正常 UserStatusDisabled UserStatus = "DISABLE" // 已禁用用户 ) // 状态对应的描述 var userStatusMap = map[UserStatus]string{ UserStatusActive: "正常", UserStatusDisabled: "已禁用", } // 处理为看得懂的状态 func (s UserStatus) String() string { if str, ok := userStatusMap[s]; ok { return str } return string(s) } // ===================================================================================================================== // UserSex 性别 type UserSex int const ( UserSexNone UserSex = iota // 不知道是啥 UserSexMale // 男 UserSexFemale // 女 UserSexOther // 其他性别 ) // 状态对应的描述 var userSexMap = map[UserSex]string{ UserSexNone: "无性别", UserSexMale: "男", UserSexFemale: "女", UserSexOther: "其他", } // FromString 中文取性别 func (s UserSex) FromString(sex string) UserSex { result := UserSexNone for key, value := range userSexMap { if sex == value { result = key break } } return result } // 处理为看得懂的状态 func (s UserSex) String() string { if str, ok := userSexMap[s]; ok { return str } //return strconv.Itoa(int(s)) return fmt.Sprintf("UserSex(%d)", int(s)) } // MarshalJSON JSON序列化的时候转换为中文 func (s UserSex) MarshalJSON() ([]byte, error) { return []byte(`"` + s.String() + `"`), nil } // ===================================================================================================================== // UserIdentity 用户身份 type UserIdentity string const ( UserIdentityAdmin UserIdentity = "admin" // 管理员 UserIdentityUser UserIdentity = "user" // 普通用户 ) // String implements the Stringer interface. func (t UserIdentity) String() string { return string(t) }