Techumber

Golang Beginner

Github avatar
Dimpu
January 10, 2019. 2 min read

Example

package main
import "fmt"

func main() {
  fmt.Println("hello, world")
}

Variables & Constants

const PI = 3.141592653589793

// dynamic variables
str:="Hello"
str := `
  Multiline
  string
`
// declare variable
var msg string
var num int
var num flot64
var num float32
var num complex128
var b1 byte
var b uint;

// Type conversion
i := 2
f := float64(i)
u := uint(i)

Structs

type Direction struct {
  TOP string
  BOTTOM string
  LEFT string
  RIGHT string
}

Array & Slice

  // Array
  numbers := [...]int{1, 2, 3, 4, 5}

  // Slices
	var Cities = []string{"New York"}
  // append
  Cities = append(Cities, "Chicago")

  // Remove or pop
  Cities = Cities[:len(a)-1]   // Truncate slice.

  // length
  var noOfCities=len(Cities)

  // slice
  var slice = Cities[1:2]

Pointers

func main () {
  b := *getPointer()
  fmt.Println("Value is", b)
}

func getPointer () (myPointer *int) {
  val := 1
  return &val
}

```go

### Conditions

```go
if City == "NeyWork" || City == "Chicago" {
  doSomething();
}
switch city {
  case "NewYork":

  fallthrough

  default:
    fmt.Println("No City")
}
var Cities = []string{"New York", "Chicago"}

// for-range
for i, val := range entry {
  fmt.Printf("%s", i, val)
}
// for
for count := 0; count <= 10; count++ {
	fmt.Println("My counter is at", count)
}

Function

// lambda functions
myfunc := func() string {
  return "hello"
}

// multi return function
a, b := getMessage()
func getMessage() (a string, b string) {
  return "Hello", "World"
}

packages

import "fmt"
import "math/rand"
// or
import (
  "fmt"
  "math/rand"
)
// or Aliases
import r "math/rand"

Simple http Server

package main

import (
	"fmt"
	"log"
	"net/http"
)

func homePage(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintf(w, "Welcome to the HomePage!")
	fmt.Println("Endpoint Hit: homePage")
}

func handleRequests(port string) {
	http.HandleFunc("/", homePage)
	fmt.Println("Running Sever at //localhost:" + port)
	log.Fatal(http.ListenAndServe(":"+port, nil))
}

func main() {
	port := "8081"
	handleRequests(port)
}

...