Introduction to Go

for JavaScript Developers

Scott Ernst

/sernst/GoIntro

My Perspective

I'm not an expert Gopher

  • I write Go for production work
  • Still learning

Plan: Comparative Examples

  • Syntax
  • Hello World
  • Existing Data Types
  • Custom Data Types
  • Reading JSON
  • Concurrency
  • Simple HTTP Server

(

vs

)

Not a battle for supremacy

!

Core Packages Only

Focusing on the Fundamentals

$ go get ...
$ npm install ...
require('path')
import "path"

Go is like C and Python had a kid

Good Looks

Pleasant Demeanor

Confidence

Athletic Ability

http://golang-for-python-programmers.readthedocs.org/en/latest/intro.html

"C for the 21st Century"

A Melting Pot of "Good Ideas"

• Statically typed

• Compiled

• C/Java syntax family

• Functional (closures & first class functions)

• Pointers (simplified compared to C)

• Concurrency

Go In A Nutshell

And Now

The Examples

/sernst/GoIntro

Hello World

Example:

  • Define functions

  • Pass variables

  • Print to console

  • Explicit type conversions

Variables & Functions

Example:

  • Define variables

  • Uninitialized "zero" values

  • Functions that return values

  • Closures

  • Functions as variables

Arrays & Slices

Example:

  • Define and populate arrays

  • Passing by copy versus by reference

  • Go slices like JavaScript arrays

Maps (Objects)

Example:

  • Define and populate maps/objects

  • Modifying by reference

Pointers

Example:

  • * dereferencing operator
  • & pointer creation operator
  • Allow passing by reference
  • Pointers share memory

Read JSON File

Example:

  • Error handling
  • File system utilities

Simple Web Server

Example:

  • http package
  • sending JSON data

Introduction to Go for JavaScript Developers

By sernst

Introduction to Go for JavaScript Developers

An introduction to the Go programming language for developers familiar with Node.js. Learn Golang with side-by-side examples in Go and Node.js.

  • 1,494