GoLang Sheet Sheet

Basic Syntax

Variables and Types

var x int            // variable declaration
var x = 42           // variable declaration with initialization
x := 42              // shorthand variable declaration with initialization
var x, y, z int      // declare multiple variables
const x = 42         // declare a constant
var x = "hello"      // variable of string type
var x = true         // variable of boolean type
var x = 3.14         // variable of float64 type
var x = []int{1, 2}  // variable of slice type

Functions

func name(arg1 type1, arg2 type2) return_type {
  // function body
  return value
}

func add(a, b int) int {
  return a + b
}

Control Structures

if condition {
  // code to be executed if condition is true
} else if condition2 {
  // code to be executed if condition2 is true
} else {
  // code to be executed if all conditions are false
}

for i := 0; i < 10; i++ {
  // code to be executed repeatedly
}

switch variable {
  case value1:
    // code to be executed if variable == value1
  case value2:
    // code to be executed if variable == value2
  default:
    // code to be executed if none of the cases match
}

Pointers

var x int = 10
var p *int = &x   // pointer to x
fmt.Println(*p)   // dereference pointer to get value of x
*p = 20            // change value of x via pointer

Packages

import "fmt"         // import package named fmt

func main() {
  fmt.Println("Hello, world!")  // use function from fmt package
}

Arrays and Slices

Arrays

var a [5]int             // declare an array of 5 integers
a[0] = 1                 // set the first element of the array
b := [5]int{1, 2, 3, 4, 5}  // declare and initialize an array

Slices

var s []int              // declare a slice
s = append(s, 1)         // add an element to the end of the slice
s = append(s, 2, 3, 4)   // add multiple elements to the end of the slice
s = s[1:3]               // slice the slice to get a new slice [2, 3]

Structs

type Person struct {
  name string
  age int
}

p := Person{name: "John", age: 30}  // create a new Person
p.age = 31                          // change the value of age

Interfaces

type Shape interface {
  area() float64
}

type Circle struct {
  x, y, r float64
}

func (c Circle) area() float64 {
  return math.Pi * c.r * c.r
}

func getArea(s Shape) float64 {
  return s.area()
}

c := Circle{x: 0, y: 0, r: 5}
fmt.Println(getArea(c))  // print the area of the Circle

Leave a Reply

Proudly powered by WordPress | Theme: Code Blog by Crimson Themes.