In the general sense, Unicode "rune" is just a number, exactly like 64(0x40) is the number which is the code for '@' in both ASCII and Unicode.
- Is 64 a real number? Yes, of course. you can assign literal 64 to a float variable.
- Is 64 an integral number? Yes. You can assign literal 64 to any integral variable.
- Is 64 a signed number? Yes. You can assing literal 64 to any unsigned variable.
- Is 64 an unsigned number? Yes. You can assign literal 64 to any signed variable.
package main
import "fmt"
func main() {
var f float64
f = 64
var b int8
b = 64
var u uint16
u = 64
var i int
i = 64
fmt.Println(f, b, u, i)
}
Playground
Output:
64 64 64 64
What this attempts to show is that [small] whole numbers (as well as such literals) are basically typeless, i.e. untyped.
Related: Rune Literals.