Тип rune
в Go определяется как "псевдоним для int32 и эквивалентен int32 всеми способами. Он используется, по соглашению, для различения значений символов из целых значений."
Если намерение использовать этот тип для представления значений символов, почему авторы языка Go не использовали uint32 вместо int32? Как они ожидают, что значение руны будет обрабатываться в программе, когда оно будет отрицательным? Другой подобный тип byte
является псевдонимом для uint (а не int), что разумно.