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
Made with Slides.com