OneCompiler

GoLang Basics

349

Variables

  1. Declare variables options

      -> var i int = 10; // Declare and intialize variables 
      -> var i int; // Declare variables and intialize later
          i = 20;
      -> i := 30; //intialize and dclare without type, compiler will decides type
    
  2. Sample program for strings

      package main
      import "fmt"
      var name string = "Foo"
      var department string = "Ece"
      var collegeName string = "JNTU"
      
      func main() {
      	fmt.Printf("%v, %v, %v", name, department, collegeName)
      }
    
  3. variable Group decleration

      package main
      import "fmt"
      
      var (
        name string = "Foo"
        department string = "Ece"
        
      )
      
      var (
        collegeName string = "JNTU"
        age int = 20
        mobileNumber int64 = 90891223344
        
      )
      
      func main() {
      	fmt.Printf("%v, %v, %v, %v", name, department, collegeName, age)
      }
    
  4. Redeclare variables or shadowing variables

      package main
      import "fmt"
      
      var i int = 10
      func main() {
        fmt.Println(i)
        var i int = 20 //shadow variable
      	fmt.Println(i)
      }
    
  5. Declared variables must be present else compile error comes.

  6. If variable name is lowerCase it act as private (Within the package only available)

  7. If variable name is upperCase it act as public (Other packages will also available)

  8. If variable declared in any block it is available within the block

  9. Variable type converstion

      package main
      import "fmt"
      
      func main() {
        var i int = 10
        var j float32
        j = float32(i)
        fmt.Printf("%v, %T, ", j, j)
      }
    
  10. If we convert number to string, it prints ascii characters of that number

      package main
      import "fmt"
      
      
      func main() {
        var j int = 45
        var i string = string(j)
        fmt.Printf("%v, %T, ", i, i)
      }
    
  11. Convert int to string directly use 'strconv' package

      package main
      import (
        "fmt"
        "strconv"
        )
      
      func main() {
        var j int = 45
        var i string = strconv.Itoa(j)
        fmt.Printf("%v, %T, ", i, i)
      }
    

Data Types

  1. Boolean
    -> var isActive bool = true
    -> isActive := true
    -> isActive := 1==1
    -> var isActive bool = 1==1
  2. Integer
    1. int
    2. int8 -> -128 to 127
    3. int16
    4. int32
    5. int64
    6. uint
    7. unit8 -> 0 to 255 (Only positive integers)
    8. uint16
    9. uint32
    10. byte
    11. rune
    12. uint
    13. uintptr
  3. We can do any mathematical operations only on same type
      package main
      import "fmt"
      func main() {
        var a int = 10
        var b int8 = 20
        fmt.Println(a+b)
      }
    
    -> Error : mismatched types int and int8
    -> Golang won't do any implicit data type converstions
      package main
      import "fmt"
      
      func main() {
        var a int = 10
        var b int8 = 20
        fmt.Println(a+int(b))
      }
    
  4. Floating point numbers
    1. float32
    2. float64
    3. complex64
    4. complex128
  5. Strings
    1. s := "Hi How are you"
    2. var msg string = "Hi"
  6. Convert String to bytes
    -> b := []byte("Hi")
      package main
      import "fmt"
      
      func main() {
        a := []byte("ab")
        fmt.Println(a) //[97 98]
      }
    
  7. Convert byte to string
    -> b := string(a)
      package main
      import "fmt"
      
      func main() {
        a := []byte("ab")
        fmt.Println(a)
        b := string(a)
        fmt.Println(b)
      }
    

Constants

  1. const myConst int = 10
  2. const a = 20
  3. constants with auto increment values iota
      package main
      import "fmt"
      
      const (
        c0 = iota
        _
        c1
        c2
      )
      
      const (
        d0 = iota
      )
      
      func main() {
        fmt.Println(c0) //0
        fmt.Println(c1) //2
        fmt.Println(c2) //3
        fmt.Println(d0) //0
      }