Hi I want to declare a constant that maps an *ErrorCode*(string) like "100.01" to its *ErrorDescription*(string) like "Error description of 100.01". Declaring Error as *code* and *description* is helpful to monitor logs based based on *ErrorCode* and show the *ErrorDescription* to the client.
Although go cannot create constant of type map, but it can be achieved in multiple ways. -------------------------------------------------------------------- -------------------------------------------------------------------- -------------------------------------------------------------------- ------------- One possible way can be :- type ErrorCode string const ( E270_01 ErrorCode = "270.01" E270_02 = "270.02" ) var ErrDescription = map[ErrorCode]string{ E270_01: "this is error description", E270_02: "this is error description", } type LogErr struct { Code ErrorCode Description string } func getLogErr(e ErrorCode) LogErr { return LogErr{ Code: e, Description: ErrDescription[e], } } func TestErrorConstant(t *testing.T) { fmt.Println(getLogErr(E270_01)) } This solves our purpose. But the problem is for every new error, we need to change things at two places, (1) Declare const like E270_02 (2) Add an entry in the *ErrDescription* map ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Another possible way looks like :- type ErrorCode string const ( E270_01 ErrorCode = "270.01:this is error description" E270_02 = "270.02:this is error description" ) type LogErr struct { Code string Description string } func getLogErr(e ErrorCode) LogErr { * token := strings.Split(string(e), ":")* return LogErr{ Code: token[0], Description: token[1], } } func TestErrorConstant(t *testing.T) { fmt.Println(getLogErr(E270_01)) } This way looks promising, but don't really like the way of splitting string using ":" ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- I think best way could have been something like --- const ( E270_01 ErrorCode = {"270.01", "this is error description"} ) Since Golang doesn't support the Constant of struct, what could be your approach? Any suggestion is really appreciated. -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/198455c0-4f81-4e2f-a166-72796a15d498%40googlegroups.com.