Everything that is surrounded by double quotes is a literal string, no matter how long that string is.
An individual element of a string, accessed as myString[0] is always a byte type, which is an alias for uint8. There is no char type in Go; use byte instead.
To iterate over the bytes of a string, use a classic for loop: for i := 0; i < len(str); i++ { fmt.Print(str[i]) }
The range operator is Unicode-aware. Unlike a classic loop, a range loop iterates over the individual Unicode runes of a string. Runes are of type rune, which is an alias for int32.
(Side note: reflect.TypeOf() has no idea about type aliases.
And a tip: fmt.Printf("%T\n", v) does the same as fmt.Println(reflect.TypeOf(v)) but is shorter, and you don’t have to import reflect into your code.)