The built-ins are just pre-declared identifiers.
But since they aren't really describable in Go you can't take a pointer
to the built-in functions. I mean, what type would "_len" have in this case?
You can declare functions, types, and variables in inner scopes that
will override those declared in outer scopes.
You can also do things like
type int float64
or
int := "somestring"
or
func somefunc(int,float string){
//int and float are variables of type string
}
Generally it's best to avoid these kinds of things. But means that Go
devs can add new types or built-in functions to the language in future
without breaking existing code that uses those names.
- jessta