【发布时间】:2018-11-22 09:05:18
【问题描述】:
我有以下代码片段:
type ErrorCode string
const (
INVALID_REQUEST ErrorCode = "INVALID_REQUEST"
)
type Response struct {
ErrorCode string `json:"errorCode"`
}
func BuildResponseError(errorCode ErrorCode) string {
user := &Response{ErrorCode: string(errorCode)}
response, err := json.Marshal(user)
if err != nil {
log.Println(err)
return `{"errorCode":"bad_request"}`
}
return string(response)
}
我可以像这样调用函数BuildResponseError:
BuildResponseError("wrong_request")
有没有办法禁用这种隐式类型转换?我只想这样调用这个函数,使用枚举值:
BuildResponseError(INVALID_REQUEST)
【问题讨论】:
标签: go enums type-conversion constants implicit-conversion