Course: Learning GO

A collection of go basic fundamentals, syntax and concepts.

Table of contents

Lesson: Functions

Functions

  • Similar to other languages
  • It can receive arguments
  • Arguments can have default values
  • The last argument can be of variable length

The tricky part

- Functions can return more than one value (at once)
- Functions can return labeled variables
- Functions receive arguments always by value
func add(a int, b int) int {
    return a+b;
}

func addAndSubstract(a int,b int)(int,int){
    return a+b,a-b
}

addition, substraction := addAndSubstract(4,2)
_, substraction := addAndSubstract(4,2)
addition, _ := addAndSubstract(4,2)

Functions receiving references

One package one main()

func birthday(age *int){
    age = *age + 1
}

func main(){
    age := 22
    birthday(&age)
    fmt.Prinln(age)
}

Functin Curiosity

  • panic("Message!") // It will close your app
  • defer fmt.Println("bye") // It will delay execution to the end. It uses stack data structure
  • init() //

Errors Design Pattern

We don’t have exceptions in GO, this is the typical design pattern when an action may trigger an error.

SHTB

Building digital experiences and sharing knowledge through code and creativity.

Sign up for our newsletter

Stay up to date with the latest news and articles.

© 2025 Shahryar Tayeb. All rights reserved.