Go Variables

Last Updated: March 18, 2022

Variable declaration in GO

var i int
var i int = 10
var i:=42

var n complex64 = 1 + 2i // complex type variables

You have to use all the variables you declared otherwise it will give your compiler error.

When you redeclare a variable

var i int = 10
i := 20

You will get a compile error

./prog.go:9:4: no new variables on left side of :=



Go Lang Variable Shadowing

package main

import "fmt"
var i int = 10

func main() {
	if true {
		var i int = 50
		i++
	}
	fmt.Println(i) // 10
}

Why the value of i is not equal to 51?

var i int = 50 declare a new variable but it is a shadow of the original variable i. But later variable i is for the scope of the if statement.

Detect Variable Shadowing

You use vet to detect variable shadowing

> go vet -shadow main.go

Go Variable Scope

  • Package level
Test