Skip to content

Instantly share code, notes, and snippets.

@shaikmdrafi
Last active November 24, 2019 08:24
Show Gist options
  • Save shaikmdrafi/7cf647bd4a68ebdcc989e14d9d739f1b to your computer and use it in GitHub Desktop.
Save shaikmdrafi/7cf647bd4a68ebdcc989e14d9d739f1b to your computer and use it in GitHub Desktop.

Variable Declaration

package main

import "fmt"

func main() {
// Type-1 Declaration
        i := 42
// Type-2 Declaration
        var j int
        j = 52
// Type-3 Declaration
        var k int = 62
        fmt.Println(i)
        fmt.Println(j)
        fmt.Println(k)

}

For Loop

package main

import "fmt"

func main() {
	for i := 0; i < 5; i++ {
	fmt.Println(i)
	}
}

Math Operations

package main

import "fmt"

func main() {
	x := 5
	y := 7
	var sum int = x + y
	fmt.Println(sum)
}

If Condition

package main

import "fmt"

func main() {
	x := 4
	if x >= 6 {
		fmt.Println("x value is more than or equal to 6")
	} else if x <= 2{
		fmt.Println("x value is less than or equal to 2")
	} else {
		fmt.Println("x value is in between 3 and 5")
	}
	
}

Array's

package main

import "fmt"

func main() {
	var a [5]int
	fmt.Println(a)

	var b [5]int
	b[2] = 10 
	fmt.Println(b)
	
	c := [6]int{10,20,70,90,5,15}
	fmt.Println(c)
	
	d := []int{1,2,3,4,5,6,7,8,9}
	fmt.Println(d)
	
	d = append(d,10)
	fmt.Println(d)
}

String Mapping

package main

import "fmt"

func main() {
	vertices := make(map[string]int)
	
	vertices["traingle"] = 2
	vertices["square"] = 3
	vertices["polygon"] = 5
	
	fmt.Println(vertices)
	fmt.Println(vertices["square"])
	
	delete(vertices, "traingle")
	fmt.Println(vertices)
}

Loop with Array

package main

import "fmt"

func main() {
	arr := []string{"a","b","c"}
	for index, value := range arr{
		fmt.Println("index:", index, "value:", value)
	}	
}
package main

import "fmt"

func main() {
	m := make(map[string]string)
	m["a"] = "alpha"
	m["b"] = "beta"
	
	for key, value := range m {
		fmt.Println("key:", key, "value:", value)
	}
}

Custom Fucntions

package main

import (
	"fmt"
)

func main() {
	result := sum(16,14)
	fmt.Println(result)
}

func sum(x int, y int)int {
	return x + y
	}

Go functions can have multiple return value

package main

import (
	"fmt"
	"errors"
	"math"
)

func main() {
	result, err := sqrt(16)
	if err != nil {
		fmt.Println(err)
	} else{
		fmt.Println(result)
		}
}
	
func sqrt(x float64) (float64, error){
	if x < 0 {
		return 0, errors.New("Undefined for Negative Numbers")
		}
	return math.Sqrt(x), nil
}

Struct (collection of fields)

package main

import (
	"fmt"
)

type person struct {
	name string
	age int
	}

func main(){
	p := person{name: "shaik", age: 28}
	fmt.Println(p)
	fmt.Println(p.name)
	fmt.Println(p.age)
}

Pointers

package main

import (
	"fmt"
)

func main (){
	i := 8
	fmt.Println(&i)
	inc(&i)
	fmt.Println(i)
}


func inc(x *int){	// Prefixing type with Astric
	*x++		// Referncing Pointer
}

Boolean Type

package main

import (
	"fmt"
)

func main (){
	var n bool = true
	fmt.Printf("%v %T\n", n ,n)
}
package main

import (
	"fmt"
)

func main() {
	x := 1 == 1
	y := 1 == 2
	fmt.Printf("%v %T\n", x, x)
	fmt.Printf("%v %T\n", y, y)
}

Boolean type

package main

import (
	"fmt"
)

func main (){
	var n bool = true
	fmt.Printf("%v %T\n", n ,n)
}
package main

import (
	"fmt"
)

func main() {
	x := 1 == 1
	y := 1 == 2
	fmt.Printf("%v %T\n", x, x)
	fmt.Printf("%v %T\n", y, y)
}

Integer Types

package main

import (
	"fmt"
)

func main() {
	n := 50
	fmt.Printf("%v,  %T", n, n)
}

Arithmetic Operations

package main

import (
	"fmt"
)

func main() {
	a := 50
	b := 10
	fmt.Println(a + b)
	fmt.Println(a - b)
	fmt.Println(a / b)
	fmt.Println(a * b)
	fmt.Println(a % b)
}

Bit Wise Operators

package main

import (
	"fmt"
)

func main() {
	a := 10		// 10101
	b := 3		// 0011
	fmt.Println(a & b)
	fmt.Println(a | b)
	fmt.Println(a ^ b)
	fmt.Println(a &^ b)
}

Shift Operators

package main

import (
	"fmt"
)

func main() {
	a := 10		// 1010
	fmt.Println(a << 2)
	fmt.Println(a >> 2)
}

Complex Numbers

package main

import (
	"fmt"
)

func main() {
	a := 2 + 4i
	b := 3 + 6i
	fmt.Println(a + b)
	fmt.Println(a - b)
	fmt.Println(a / b)
	fmt.Println(a * b)
}

Typed Constants

package main

import (
	"fmt"
)

func main() {
	const myConstnt = 45
	fmt.Printf("%v, %T", myConstnt,myConstnt)
}
package main

import (
	"fmt"
)

func main() {
	const a int = 45
	const b string = "jack"
	const c float32 = 45.67
	const d bool = true
	fmt.Printf("%v, %T \n", a,a)
	fmt.Printf("%v, %T\n", b,b)
	fmt.Printf("%v, %T\n", c,c)
	fmt.Printf("%v, %T\n", d,d)
}

shadowing

package main

import (
	"fmt"
)

const a int = 67

func main() {
	const a int = 45
	fmt.Printf("%v, %T \n", a,a)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment