How to Comment in Go

Hey! If you love Go and building Go apps as much as I do, let's connect on Twitter or LinkedIn. I talk about this stuff all the time!

Want to learn how to build better Go applications faster and easier? You can.

Check out my course on the Go Standard Library. You can check it out now for free.


Learn how to comment your code effectively and efficiently, so that your teammates and future maintainers can easily understand the purpose of your code.



Commenting is an essential part of coding, especially in Go. It allows you to explain the logic behind your code, make it more readable, and communicate with your teammates or future maintainers. However, commenting can be a daunting task for some programmers. This article will guide you through the process of commenting in Go, from basic syntax to advanced techniques.

Basic Syntax

In Go, comments are denoted by two forward slashes (//). Anything that follows these two slashes is considered a comment and will not be executed during compilation. Here’s an example:

package main

import "fmt"

func main() {
    // This is a comment
    fmt.Println("Hello, world!")
}

In the above code snippet, // This is a comment is a single-line comment that explains the purpose of the following line of code.

Block Comments

Go also supports block comments using multi-line comments denoted by /* */. A block comment can be used to explain multiple lines of code or a section of your program. Here’s an example:

package main

import "fmt"

func main() {
    /* This is a block comment that spans
       multiple lines. It explains the purpose
       of the following line of code */
    fmt.Println("Hello, world!")
}

In the above code snippet, /* and */ denote the start and end of a block comment. The text inside these delimiters is considered as a single comment and will not be executed during compilation.

Documentation Comments

Documentation comments are special comments that are used to generate documentation for your code. These comments are denoted by // followed by the word “doc”. Here’s an example:

package main

import "fmt"

func main() {
    // doc Hello world prints a message on screen
    fmt.Println("Hello, world!")
}

In the above code snippet, // doc is used to denote a documentation comment. The text that follows this keyword is considered as the documentation for the following line of code. This documentation can be generated using tools like godoc or gdoc.

Best Practices

Here are some best practices to keep in mind when commenting your code:

  1. Keep it simple: Keep your comments concise and to the point. Avoid unnecessary words or phrases that don’t add value to the code.
  2. Be consistent: Use the same comment style throughout your codebase, such as using // for single-line comments and /* */ for block comments.
  3. Use clear language: Write comments in a way that is easy to understand for both humans and computers. Avoid using technical jargon or overly complex terminology.
  4. Explain the why, not the what: Your comments should explain why you chose a particular approach or solution, rather than just describing what you did. This will help your teammates and future maintainers understand the reasoning behind your code.
  5. Use line breaks: Use line breaks to make your comments more readable and easier to scan. Avoid writing long paragraphs of text on a single line.
  6. Avoid redundant comments: Make sure you’re not repeating the same information in multiple places. If a comment already exists for a particular section of code, there’s no need to duplicate it elsewhere.

Conclusion

Commenting is an essential part of coding, and Go provides a variety of tools and techniques to make this task easier. By following best practices such as keeping your comments concise, consistent, and clear, you can make your code more readable and maintainable. Remember that commenting is not just about explaining the code, but also about communicating with your teammates or future maintainers.


Questions or comments? Reach out to me


Learn how to leverage the Go Standard Library like a PRO.

I just created a new course, The Go Standard Library, check it out!