Open In App

var keyword in Go

Improve
Improve
Like Article
Like
Save
Share
Report

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

Multiple variable declarations using var Keyword

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
  • Declaring multiple variables using var keyword along with the type and initial values:
    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
  • 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"
    )
    
  • 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 keyword
    package 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 keyword
    package 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
    


Last Updated : 20 Nov, 2019
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads