Bird
Raised Fist0
Goprogramming~3 mins

Why Function declaration in Go? - Purpose & Use Cases

Choose your learning style10 modes available
The Big Idea

What if you could write a piece of code once and use it everywhere without copying it?

The Scenario

Imagine you need to calculate the area of many rectangles in your program. Without functions, you would have to write the same calculation code over and over again everywhere you need it.

The Problem

Writing the same code repeatedly is slow and tiring. It's easy to make mistakes or forget to update all copies if the calculation changes. This makes your program messy and hard to fix.

The Solution

Function declaration lets you write the calculation once, give it a name, and then use that name whenever you need the calculation. This keeps your code clean, easy to read, and simple to update.

Before vs After
✗ Before
area := width * height
// repeated everywhere
✓ After
func area(width, height int) int {
    return width * height
}

result := area(5, 10)
What It Enables

Functions let you organize your code into reusable blocks, making programs easier to build, understand, and maintain.

Real Life Example

Think of a coffee machine: you press a button (call a function) to get coffee instead of making it from scratch every time.

Key Takeaways

Functions save you from repeating code.

They make your program cleaner and less error-prone.

Functions help you organize and reuse your work easily.

Practice

(1/5)
1. What keyword is used to declare a function in Go?
easy
A. func
B. function
C. def
D. fun

Solution

  1. Step 1: Recall Go function syntax

    In Go, functions are declared using the keyword func.
  2. Step 2: Compare options

    Only func uses func, which is correct for Go.
  3. Final Answer:

    func -> Option A
  4. Quick Check:

    Function declaration keyword = func [OK]
Hint: Remember: Go uses 'func' to start a function [OK]
Common Mistakes:
  • Using 'function' like JavaScript
  • Using 'def' like Python
  • Using 'fun' which is invalid
2. Which of the following is the correct syntax to declare a function named add that takes two integers and returns an integer?
easy
A. function add(a int, b int) int {}
B. func add(int a, int b) int {}
C. func add(a, b int) {}
D. func add(a int, b int) int {}

Solution

  1. Step 1: Understand Go function parameter syntax

    In Go, parameters are declared as name type. So a int, b int is correct.
  2. Step 2: Check return type and function keyword

    Function must start with func and specify return type int. func add(a int, b int) int {} matches this exactly.
  3. Final Answer:

    func add(a int, b int) int {} -> Option D
  4. Quick Check:

    Parameter syntax = name type [OK]
Hint: Parameters: name then type, return type after parentheses [OK]
Common Mistakes:
  • Putting type before name in parameters
  • Using 'function' keyword instead of 'func'
  • Omitting return type when needed
3. What will be the output of this Go program?
package main
import "fmt"
func multiply(x int, y int) int {
    return x * y
}
func main() {
    fmt.Println(multiply(3, 4))
}
medium
A. 12
B. 7
C. 34
D. Error

Solution

  1. Step 1: Understand function call and return

    The function multiply takes two integers and returns their product.
  2. Step 2: Calculate multiply(3, 4)

    3 * 4 = 12, so the function returns 12, which is printed.
  3. Final Answer:

    12 -> Option A
  4. Quick Check:

    3 times 4 = 12 [OK]
Hint: Multiply parameters and print result [OK]
Common Mistakes:
  • Adding instead of multiplying
  • Concatenating numbers as strings
  • Expecting syntax error due to function
4. Identify the error in this Go function declaration:
func greet(name string) string {
    return "Hello, " + name
medium
A. Incorrect function keyword
B. Wrong parameter type
C. Missing closing brace '}'
D. Missing return type

Solution

  1. Step 1: Check function syntax

    The function starts with func, has parameter and return type correctly.
  2. Step 2: Look for missing parts

    The function body is missing the closing brace } to end the function.
  3. Final Answer:

    Missing closing brace '}' -> Option C
  4. Quick Check:

    Every function must end with '}' [OK]
Hint: Count opening and closing braces carefully [OK]
Common Mistakes:
  • Forgetting to close function body with '}'
  • Confusing parameter types
  • Omitting return type
5. How would you declare a Go function named filterEven that takes a slice of integers and returns a new slice containing only even numbers?
hard
A. func filterEven(nums int) int { var evens int for _, n := range nums { if n%2 == 0 { evens += n } } return evens }
B. func filterEven(nums []int) []int { var evens []int for _, n := range nums { if n%2 == 0 { evens = append(evens, n) } } return evens }
C. func filterEven(nums []int) { for _, n := range nums { if n%2 == 0 { fmt.Println(n) } } }
D. func filterEven(nums []int) []int { for n := range nums { if n%2 == 0 { return nums } } return nil }

Solution

  1. Step 1: Check parameter and return types

    The function must take a slice of integers []int and return a slice of integers []int. func filterEven(nums []int) []int { var evens []int for _, n := range nums { if n%2 == 0 { evens = append(evens, n) } } return evens } matches this.
  2. Step 2: Verify logic to filter even numbers

    func filterEven(nums []int) []int { var evens []int for _, n := range nums { if n%2 == 0 { evens = append(evens, n) } } return evens } creates a new slice, loops over input, appends even numbers, and returns the new slice. This is correct.
  3. Final Answer:

    func filterEven(nums []int) []int { var evens []int for _, n := range nums { if n%2 == 0 { evens = append(evens, n) } } return evens } -> Option B
  4. Quick Check:

    Filter slice by appending evens [OK]
Hint: Use slice, loop, append evens, return new slice [OK]
Common Mistakes:
  • Wrong parameter or return types
  • Returning inside loop prematurely
  • Printing instead of returning filtered slice
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard