This section will briefly talk about the assembly language and the Go assembler, which is a Go tool that allows you to see the assembly language used by the Go compiler.
As an example, you can see the assembly language of the goEnv.go program you saw in the previous section of this chapter by executing the next command:
$ GOOS=darwin GOARCH=amd64 go tool compile -S goEnv.go
The value of the GOOS variable defines the name of the target operating system whereas the value of the GOARCH variable defines the compilation architecture. The preceding command was executed on a macOS Mojave machine, hence the use of the darwin value for the GOOS variable.
The output of the previous command is pretty large even for a small program such as goEnv.go. Some of its output is next:
"".main STEXT size=859 args=0x0 locals=0x118 0x0000 00000 (goEnv.go:8) TEXT...