Number literals are
untyped constants in Go. They are represented as arbitrary precision integers.
When you use an untyped constant in an expression (for example as part of a return statement), it gets assigned a type - either the type that the expression must have (for example based on the return statement, other operands it's used with or if it's part of an argument), or its default type (int, for integer constants).
In your case, the compiler knows that the return type is a `uint64`, you use the literal in a return statement, so that's the type it assigns.
There is a pretty extensive explanation of Go constants in
this blog post. I recommend reading that, it's more clear than my explanation :)