×

Go Tutorial

Go Basics

Go Variables

Go Literals

Go Type Handling

Go Operators

Go Decision Making

Go Loops

Go Functions

Go String

Go Arrays

Go Slices

Go Maps

Golang Reference

Golang Programs

Golang Practice

Golang Miscellaneous

What is the difference between := and = in Go language?

Go := and = difference: In this tutorial, we are going to learn the difference between := and =.
Submitted by IncludeHelp, on October 01, 2021

In the Go programming language, the = is known as an assignment operator which is used to assign the value/expression to the left side variable/constant. While := is known as the short variable declaration which takes the following form,

variable_name := expression

The above statement assigns the value and determines the type of the expression. In such kind of declaration, there is no need to provide the type of the value/expression.

So, a short variable declaration (:=) required a value while declaring a new variable.

Consider the below example – demonstrating the difference between = and :=

Example 1:

// Go program to demonstrate the
// difference between = and :=

package main

import (
	"fmt"
)

func main() {
	// Simple declaration & assignment
	var x int = 10

	// Shorthand declaration
	y := 20

	// Printing the values and types of both
	fmt.Printf("x = %T, %v\n", x, x)
	fmt.Printf("y = %T, %v\n", y, y)
}

Output:

x = int, 10
y = int, 20

See the output – the variable x is declared and assigned using the = operator and the variable y is declared and assigned using the := operator. In the first case, the var keyword and type are required while in the second case, the var keyword and type are not required.

Example 2:

// Go program to demonstrate the
// difference between = and :=

package main

import (
	"fmt"
)

func main() {
	// Declare & assign using :=
	x, y, z := 10, 20, 30

	// Printing the types and values
	fmt.Printf("%T, %v\n", x, x)
	fmt.Printf("%T, %v\n", y, y)
	fmt.Printf("%T, %v\n", z, z)

	// Updating the values using =
	x, y, z = 100, 200, 300

	// Printing the types and values
	fmt.Printf("%T, %v\n", x, x)
	fmt.Printf("%T, %v\n", y, y)
	fmt.Printf("%T, %v\n", z, z)
}

Output:

int, 10
int, 20
int, 30
int, 100
int, 200
int, 300

Golang FAQ »

Advertisement
Advertisement


Comments and Discussions!

Load comments ↻


Advertisement
Advertisement
Advertisement

Copyright © 2025 www.includehelp.com. All rights reserved.