const ( _ Role = iota RoleAdmin RoleEditor RoleViewer )
// exhaustive が警告: missing cases in switch of Role: RoleViewer funcDescribe(r Role)string { switch r { case RoleAdmin: return"administrator" case RoleEditor: return"editor" // RoleViewer が漏れている } return"unknown" }
// map リテラルのチェック(check に "map" を追加した場合) // exhaustive が警告: missing keys in map of Role: RoleViewer var roleNames = map[Role]string{ RoleAdmin: "Admin", RoleEditor: "Editor", // RoleViewer が漏れている }
修正例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
funcDescribe(r Role)string { switch r { case RoleAdmin: return"administrator" case RoleEditor: return"editor" case RoleViewer: return"viewer" } return"unknown" }