public:: true When the Go compiler cannot tell for sure that the variable under the interface won’t be used longer than the caller function lives, it will move the variable to the heap instead of the stack. When we run our code with a parameter -gcflags="-m" we’ll get (in the stdout) the heap escape analysis. The output will tell us what kind of compile optimisations are done during building a package.