GoLang Basics
Variables
-
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 -
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) } -
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) } -
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) } -
Declared variables must be present else compile error comes.
-
If variable name is lowerCase it act as private (Within the package only available)
-
If variable name is upperCase it act as public (Other packages will also available)
-
If variable declared in any block it is available within the block
-
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) } -
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) } -
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
- Boolean
-> var isActive bool = true
-> isActive := true
-> isActive := 1==1
-> var isActive bool = 1==1 - Integer
- int
- int8 -> -128 to 127
- int16
- int32
- int64
- uint
- unit8 -> 0 to 255 (Only positive integers)
- uint16
- uint32
- byte
- rune
- uint
- uintptr
- We can do any mathematical operations only on same type
-> Error : mismatched types int and int8package main import "fmt" func main() { var a int = 10 var b int8 = 20 fmt.Println(a+b) }
-> Golang won't do any implicit data type converstionspackage main import "fmt" func main() { var a int = 10 var b int8 = 20 fmt.Println(a+int(b)) } - Floating point numbers
- float32
- float64
- complex64
- complex128
- Strings
- s := "Hi How are you"
- var msg string = "Hi"
- Convert String to bytes
-> b := []byte("Hi")package main import "fmt" func main() { a := []byte("ab") fmt.Println(a) //[97 98] } - 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
- const myConst int = 10
- const a = 20
- 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 }