1 of 23

GO PRESENTATION OF AWESOMENESS

<date goes here>

Your Name

Your company

Your handle

2 of 23

Today’s (glorious) blather.

Headlines

01

Content

Big Statements

Quotes

Code

Blanks

02

03

04

05

06

3 of 23

Headlines

SECTION ONE

4 of 23

The First Section

SECTION NUMBER

5 of 23

Content

SECTION TWO

6 of 23

Go’s Values

  • Thoughtful
  • Simple
  • Efficient
  • Reliable
  • Productive
  • Friendly

7 of 23

TENETS OF GO DESIGN

Simplicity.

Each language feature should �be easy to �understand.

01. BACKGROUND

{

8 of 23

TENETS OF GO DESIGN

Orthogonality.

Go’s features should interact in predictable and consistent ways.

01. BACKGROUND

{

9 of 23

TYPES & METHODS

Each language feature should �be easy to �understand.

02. A SIMPLE TYPE SYSTEM

type MyFloat float64� func (m MyFloat) Abs() float64 {� f := float64(m)� if f < 0 {� return -f� }� return f� }� f := MyFloat(-42)� f.Abs() // == 42.0

You can define methods on any type:

10 of 23

IMAGE & TEXT

03. REAL WORLD GO

+ A main point to make

+ Another key point

11 of 23

Big Statements

SECTION THREE

12 of 23

Go is a modern,

general purpose

language.

01. BACKGROUND

WHAT IS GO?

01

13 of 23

Compiles to native machine code (32-bit and 64-bit x86, ARM).

WHAT IS GO?

01. BACKGROUND

02

14 of 23

Lightweight syntax.

WHAT IS GO?

01. BACKGROUND

03

15 of 23

Quotes

SECTION FOUR

16 of 23

Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.

BRIAN KERNIGHAN

17 of 23

Go's purpose is to

make its designers'

programming lives better.

ROB PIKE

18 of 23

Code

SECTION FIVE

19 of 23

TYPES & METHODS

Types implement interfaces implicitly. There is no “implements” declaration.

02. A SIMPLE TYPE SYSTEM

type Abser interface {

Abs() float64

}

Interfaces specify behaviors. �An interface type defines a set �of methods:

func PrintAbs(a Abser) {

fmt.Printf("Absolute value: %.2f\n", a.Abs())

}

PrintAbs(MyFloat(-10))

PrintAbs(Point{3, 4})

A type that implements those methods implements the interface:

20 of 23

TYPES & METHODS

Types implement interfaces implicitly. There is no “implements” declaration.

02. A SIMPLE TYPE SYSTEM

func PrintAbs(a Abser) {� fmt.Printf("Absolute value: %.2f\n", a.Abs())� }

� PrintAbs(MyFloat(-10))� PrintAbs(Point{3, 4})

21 of 23

Blanks

SECTION SIX

22 of 23

23 of 23