I am reading The Go Programming Language, and while browsing the source code I find certain tags, like:
//!+
//!-
or
//!+main
//!-main
Do they mean something to the compiler?
No, those comments don't mean something to the Go compiler. As stated in the gopl.io project's README.md
:
Many of the programs contain comments of the form //!+ and //!-. These comments bracket the parts of the programs that are excerpted in the book; you can safely ignore them. In a few cases, programs have been reformatted in an unnatural way so that they can be presented in stages in the book.
For instance all code between the two snippets //!+bytecounter
and //!-bytecounter
are in the gopl.io/ch7/bytecounter
snippet shown on p. 173 of the book.
This looks like conditional compilation, it means that you can choose what sections to build when you build for multi platform, for example you can state:
// +build windows
for windows and etc you can find more information about it and the full list here:
also take a look at the build go package:
wont be compiled on run time , i think it still considered as a comment