DEV Community

Cover image for Golang perk series : (typed) arrays – JS vs. GO #3
LG
LG

Posted on • Edited on

Golang perk series : (typed) arrays – JS vs. GO #3

ARRAYS

  • UNTYPED ARRAYS

In JavaScript :

var nil_ = []; /* implicitly as type of int (use TS if you want to be sure) */
console.log(`${nil_.length == 0}\n`) // true
Enter fullscreen mode Exit fullscreen mode

In Golang :

var nil_ []int
fmt.Println(len(nil_) == 0) // true
Enter fullscreen mode Exit fullscreen mode

  • TYPED ARRAYS
    • declarations :
  • TYPED ARRAYS
    • views :

In JavaScript :

/*var*/ primes = new ArrayBuffer(8)
/*var*/ uint8 = new Uint16Array(primes)
/*var*/ sliced_primes = uint8.slice()
console.log(sliced_primes) // Uint16Array(4) [0, 0, 0, 0, buffer: ArrayBuffer(8), byteLength: 8, byteOffset: 0, length: 4, Symbol(Symbol.toStringTag): 'Uint16Array']
Enter fullscreen mode Exit fullscreen mode

In Golang :

func main() {
        primes := [4]int{}
    var sliced_primes []int = primes[0:len(primes)]
    fmt.Println(sliced_primes)
}
// try oneself on : @https://go.dev/play/
Enter fullscreen mode Exit fullscreen mode

NOTE : In JavaScript TypedArrays are limited of one specific type you choose to have in the container , whereas DataView (heterogenous data in fancy terms) can be used as a "translator" eliminating boundaries "of one type" for TypedArrays (homogenous data in fancy terms) .

TIP : with reference to explanation above , in Node.js
runtime we would use Buffer.from() !


  • Slicing the arrays :

In JavaScript :

  // Task : slice each season's months into dedicated variable & print it :
function main(){
  var full_year = ["Jan", "Feb", "March", "April", "May", "June", "July","August", "September", "October", "November", "December",]
  var winter = full_year.slice(0,2) winter.unshift(full_year[11])
  var spring = full_year.slice(2,5)
  var summer = full_year.slice(5,8)
  var autumn = full_year.slice(8,11)
  console.log(full_year, winter, spring, summer, autumn)
}
main()
Enter fullscreen mode Exit fullscreen mode

In Golang :

package main 

import (
  . "fmt"
)

func main(){
  full_year := []string{"Jan", "Feb", "March", "April", "May", "June", "July","August", "September", "October", "November", "December",}

  /* --- */

  // Task : slice each season's months into dedicated variable & print it :
  var winter = append([]string{}, full_year[11], full_year[0], full_year[1])
  var spring = full_year[2:5]
  var summer = full_year[6:9]
  var autumn = full_year[9:12]
  Println(full_year, winter, spring, summer, autumn)
} 
Enter fullscreen mode Exit fullscreen mode

Top comments (0)