[TIPS] Prefer := for Short Variable Declaration in Go

By khoanc, at: Sept. 4, 2024, 1:47 p.m.

Estimated Reading Time: 3 min read

[TIPS] Prefer := for Short Variable Declaration in Go
[TIPS] Prefer := for Short Variable Declaration in Go

Prefer := for Short Variable Declaration in Go

One of the most convenient features of Go is the := syntax for short variable declarations. It allows you to declare and initialize a variable in one line, making your code more concise and readable. Let’s explore why this shorthand should be your go-to choice in most situations.

 

Why Use :=?

Simplicity and Readability: The := syntax simplifies variable declaration by combining both declaration and initialization in a single line. This reduces boilerplate code and makes it immediately clear that a new variable is being introduced.


Type Inference: With :=, you don't have to explicitly specify the variable's type. Go will automatically infer the type based on the value assigned, which reduces verbosity without sacrificing clarity.

 

count := 42   // count is automatically an int
name := "Go"  // name is automatically a string


Scoped to Blocks: Variables declared with := are scoped to the block in which they are declared, helping you avoid issues related to variable reuse or unintended global state changes.

 

When Not to Use :=

While the shorthand is powerful, there are times when you should avoid it:

Package-Level Variables: At the package level, you need to declare variables using the var keyword because := is only valid inside functions.

var globalCount int // Declare at the package level


Reassigning Values: If you are reassigning a value to an existing variable in the same scope, use the standard assignment operator = instead of :=.

count = 50 // Reassign a new value

 

Example of := in Action

Here’s a simple example showing how := can streamline your code:

package main

import "fmt"

func main() {
    // Declaring and initializing multiple variables with :=
    message := "Hello, Go!"
    count := 10
    isReady := true

    fmt.Println(message, count, isReady)
}


In this example, := is used to declare and initialize three variables with different types, keeping the code concise and readable.


Subscribe

Subscribe to our newsletter and never miss out lastest news.