Moving from JavaScript to Golang

Moving from JavaScript to Golang

I picked up Golang after reading the reviews about the language, Golang is backed by GOOGLE!, oh and of course popular DevOps tools such as Docker, Kubernetes, Terraform, are built with Golang, in this article I will be taking you through basic programming in Golang and Javascript.

Variables

Javascript

In Javascript variables can be declared using the let, const(ES6), and var(ES5) keyword.

  // using the const keyword
  const a = 10
  // using the let keyword
  let b = 10
  // using the var keyword
  var c = 10
  console.log(a, b, c) // returns 10, 10, 10

Golang

In Go variables can be declared using the var, const keyword and also using the short syntax.

  // using the var keyword
  var a = 10 // go detects the type here even though we don't specify
  fmt.Println(a) // returns 10
  fmt.Printf("variable a is of type: %T\n", a) // returns int

  // using the const keyword
  const b = 20  // It is important to note that the value of b must be known at compile-time
  fmt.Println(b) // returns 20

  // a variable can be initialized with the var keyword
  var c bool
  fmt.Println(c) // returns the zero value(zero value of a boolean is false)

  // using the short syntax
  d := "this is a variable" // go detects the type of this variable
  fmt.Println(d) // returns this is a variable
  fmt.Printf("d is of type: %T\n", d) // returns the type(string)

Variable Playground

Arrays

An array is a collection of items.

Javascript

In Javascript arrays are dynamic, items can be added and removed from the array, also Javascript being a loosely-typed language, it can hold values of different type in the array.

  let myArray = [1, "this is array", true, 100.30]
  console.log(myArray) // returns [1, "this is array", true, 100.30]

// we can remove the last item in an array using the pop method
  myArray.pop()
  console.log(myArray) // returns [1, "this is array", true]

// we can add to the end of the array using push method
  myArray.push(20)
  console.log(myArray) // returns [1, "this is array", true, 20]

// we can remove the first item of the array using the shift method
  myArray.shift()
  console.log(myArray) // returns ["this is array", true, 20]

// we can add to the start of the array using the unshift method
  myArray.unshift(210)
  console.log(myArray) // returns [210, "this is array", true, 20]

Golang

Arrays are of fixed length in Go, you can't add nor remove from an array, also an array can only contain the specified type.

    a := [5]string{"a", "b", "c", "d", "e"} // length is 5
    fmt.Println(a) // returns [a b c d e]
    // But what happens if we don't specify exactly 5 items
    b := [5]string{"a", "b", "c"}
    fmt.Printf("%#v", b) // returns [5]string{"a", "b", "c", "", ""}
    // "" represents the zero value(zero value of a string is "")

Array Playground In Golang we also have slices, they are dynamic and we don't need to specify the length, values can be added and removed from a slice.

    a := []string{"a", "b", "c"}
    fmt.Printf("%#v", a) //  returns []string{"a", "b", "c"}

    // adding to a slice, we can use the append method to add an item to a slice
    a = append(a, "d")   // append takes in the the array and the value we are adding
    fmt.Printf("%#v", a) // returns []string{"a", "b", "c", "d"}

    // removing from a slice by slicing
    a = append(a[0:3])   // 0 represents the index, while 3 represents the position
    fmt.Printf("%#v", a) // returns []string{"a", "b", "c"}

    // slices can also be created using the make method(in-built)
    // the first value is the type, the second and the third value is the length and maximum capacity of the slice
    b := make([]string, 3, 5)
    fmt.Printf("length of b is:%#v, and cap of b is:%#v\n", len(b), cap(b)) // returns length of b is:3, and cap of b is:5

Slice Playground

Function

Javascript

In Javascript a function expression can we written using the function keyword, arrow function(ES6) can also be used.

// using the function keyword
   function a(value) {
       return value
   }
   const val = a("this is the value")
   console.log(value)
// using arrow function
   const b = ((value) => value) 
   const val2 = b("this is another value")
   console.log(val2)

Golang

Using the func keyword, a function expression can be written in go.

  func a() {
   fmt.Println("this is a function")
}
  a() // returns "this is a function"
// parameters and return type can also be specified
  func b(a,b int) int { // takes in value of type int and returns an int
     result := a * b
   return result
}
  val := b(5,6)
  fmt.Println(val) // returns 30

Function Playground

Objects

Javascript

In JavaScript we can write Objects by specifying the key and the value in curly braces separated by a comma.

  const music = {
   genre: "fuji",
   title: "consolidation",
   artist: "kwam 1",
   release: 2010,
   hit: true
}
console.log(music) // returns {genre: "fuji", title: "consolidation", artist: "kwam 1", release: 2010, hit: true}

Golang

In Golang their is Structs which holds a field and the field type

  type Music struct {
    genre   string
    title   string
    artist  string
    release int
    hit     bool
}
ms := Music{
    genre:   "hiphop",
    title:   "soapy",
    artist:  "naira marley",
    release: 2019,
    hit:     true,
}
fmt.Printf("%#v\n", ms) // returns main.Music{genre:"hiphop", title:"soapy", artist:"naira marley", release:2019, hit:true}

Struct Playground

Helpful Golang resources

Tour of go Complete go bootcamp RunGo gobyexample

javascript go

Bootstrap 5 Complete Course with Examples

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

Building a simple Applications with Vue 3

Deno Crash Course: Explore Deno and Create a full REST API with Deno

How to Build a Real-time Chat App with Deno and WebSockets

Convert HTML to Markdown Online

HTML entity encoder decoder Online

What's new in the go 1.15

Go announced Go 1.15 version on 11 Aug 2020. Highlighted updates and features include Substantial improvements to the Go linker, Improved allocation for small objects at high core counts, X.509 CommonName deprecation, GOPROXY supports skipping proxies that return errors, New embedded tzdata package, Several Core Library improvements and more.

The essential JavaScript concepts that you should understand

The essential JavaScript concepts that you should understand - For successful developing and to pass a work interview

Data Types In JavaScript

JavaScript data types are kept easy. While JavaScript data types are mostly similar to other programming languages; some of its data types can be unique. Here, we’ll outline the data types of JavaScript.

JavaScript Memory Management System

The main goal of this article is help to readers to understand that how memory management system performs in JavaScript. I will use a shorthand such as GC which means Garbage Collection. When the browsers use Javascript, they need any memory location to store objects, functions, and all other things. Let’s deep in dive that how things going to work in GC.