var keyword in Go

20 Nov, 2019
var keyword in Golang is used to create the variables of a particular type having a proper name and initial value. Initialization is optional at the time of declaration of variables using var keyword that we will discuss later in this article.
Syntax:
var identifier type = expression
Example:
// here geek1 is the identifier 
// or variable name, int is the
// type and 200 is assigned value
var geek1 int = 200

As you know that Go is a statically typed language but it still provides a facility to remove the declaration of data type while declaring a variable as shown in below syntax. This is generally termed as the Type Inference.
Syntax:
var identifier = initialValue
Example:
var geek1 = 200

var keyword is also used to declare multiple variables in a single line. You can also provide the initial value to the variables as shown below:
Declaring multiple variables using var keyword along with the type:var geek1, geek2, geek3, geek4 int
var geek1, geek2, geek3, geek4 int
Declaring multiple variables using var keyword along with the type and initial values:var geek1, geek2, geek3, geek4 int = 10, 20, 30, 40
var geek1, geek2, geek3, geek4 int = 10, 20, 30, 40
Note:
You can also use type inference(discussed above) that will let the compiler to know about the type i.e. there is an option to remove the type while declaring multiple variables.Example:var geek1, geek2, geek3, geek4 = 10, 20, 30.30, true
Example:
var geek1, geek2, geek3, geek4 = 10, 20, 30.30, true
You can also use multiple lines to declare and initialize the values of different types using a var keyword as follows:Example:var(
     geek1 = 100
     geek2 = 200.57
     geek3 bool
     geek4 string = "GeeksforGeeks"
)

Example:
var(
     geek1 = 100
     geek2 = 200.57
     geek3 bool
     geek4 string = "GeeksforGeeks"
)

While using type during declaration you are only allowed to declare multiple variables of the same type. But removing type during declarations you are allowed to declare multiple variables of different types.Example:// Go program to demonstrate the multiple // variable declarations using var keywordpackage main  import "fmt"  func main() {      // Multiple variables of the same type    // are declared and initialized    // in the single line along with type    var geek1, geek2, geek3 int = 232, 784, 854       // Multiple variables of different type    // are declared and initialized    // in the single line without specifying    // any type    var geek4, geek5, geek6 = 100, "GFG", 7896.46            // Display the values of the variables   fmt.Printf("The value of geek1 is : %d\n", geek1)                                            fmt.Printf("The value of geek2 is : %d\n", geek2)                                            fmt.Printf("The value of geek3 is : %d\n", geek3)     fmt.Printf("The value of geek4 is : %d\n", geek4)                                            fmt.Printf("The value of geek5 is : %s\n", geek5)                                            fmt.Printf("The value of geek6 is : %f", geek6)                                            }Output:The value of geek1 is : 232
The value of geek2 is : 784
The value of geek3 is : 854
The value of geek4 is : 100
The value of geek5 is : GFG
The value of geek6 is : 7896.460000

Example:
// Go program to demonstrate the multiple // variable declarations using var keywordpackage main  import "fmt"  func main() {      // Multiple variables of the same type    // are declared and initialized    // in the single line along with type    var geek1, geek2, geek3 int = 232, 784, 854       // Multiple variables of different type    // are declared and initialized    // in the single line without specifying    // any type    var geek4, geek5, geek6 = 100, "GFG", 7896.46            // Display the values of the variables   fmt.Printf("The value of geek1 is : %d\n", geek1)                                            fmt.Printf("The value of geek2 is : %d\n", geek2)                                            fmt.Printf("The value of geek3 is : %d\n", geek3)     fmt.Printf("The value of geek4 is : %d\n", geek4)                                            fmt.Printf("The value of geek5 is : %s\n", geek5)                                            fmt.Printf("The value of geek6 is : %f", geek6)                                            }
Output:
The value of geek1 is : 232
The value of geek2 is : 784
The value of geek3 is : 854
The value of geek4 is : 100
The value of geek5 is : GFG
The value of geek6 is : 7896.460000

Important Points about var keyword:
During the declaration of the variable using var keyword, you can either remove type or = expression but not both. If you will do, then the compiler will give an error.
If you removed the expression then the variable will contain the zero-value for numbers and false for booleans “” for strings and nil for interface and reference type by default. So, there is no such concept of an uninitialized variable in Go language.Example:// Go program to illustrate// concept of var keywordpackage main    import "fmt"    func main() {       // Variable declared but    // no initialization    var geek1 int    var geek2 string    var geek3 float64    var geek4 bool       // Display the zero-value of the variables    fmt.Printf("The value of geek1 is : %d\n", geek1)                                   fmt.Printf("The value of geek2 is : %s\n", geek2)       fmt.Printf("The value of geek3 is : %f\n", geek3)      fmt.Printf("The value of geek4 is : %t", geek4)                                  }Output:The value of geek1 is : 0
The value of geek2 is : 
The value of geek3 is : 0.000000
The value of geek4 is : false

Example:
// Go program to illustrate// concept of var keywordpackage main    import "fmt"    func main() {       // Variable declared but    // no initialization    var geek1 int    var geek2 string    var geek3 float64    var geek4 bool       // Display the zero-value of the variables    fmt.Printf("The value of geek1 is : %d\n", geek1)                                   fmt.Printf("The value of geek2 is : %s\n", geek2)       fmt.Printf("The value of geek3 is : %f\n", geek3)      fmt.Printf("The value of geek4 is : %t", geek4)                                  }
Output:
The value of geek1 is : 0
The value of geek2 is : 
The value of geek3 is : 0.000000
The value of geek4 is : false

shubham_singh
Go-Keywords
Golang
Go Language
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
strings.Replace() Function in Golang With Examples
Arrays in Go
Golang Maps
How to Split a String in Golang?
Interfaces in Golang
Slices in Golang
Different Ways to Find the Type of Variable in Golang
How to Parse JSON in Golang?
How to Trim a String in Golang?
How to compare times in Golang?