📖 Scenario: Imagine you are building a simple calculator program in Go that adds two numbers. You want to understand how functions work and how the program runs step-by-step.
🎯 Goal: You will create a function to add two numbers, call it from the main function, and print the result. This will help you learn how function execution flows in Go.
📋 What You'll Learn
Create a function named add that takes two integers and returns their sum.
Call the add function from main with specific numbers.
Store the result in a variable named result.
Print the value of result.
💡 Why This Matters
🌍 Real World
Functions help organize code into reusable blocks, like a calculator's add button.
💼 Career
Understanding function flow is essential for writing clear and maintainable Go programs in software development.
Progress0 / 4 steps
1
Create the main function
Write the main function with an empty body. This is where the program starts running.
Go
Hint
The main function is the entry point of a Go program.
2
Create the add function
Create a function named add that takes two int parameters named a and b, and returns their sum as an int.
Go
Hint
Functions in Go start with func, followed by the name, parameters, and return type.
3
Call add and store the result
Inside the main function, call the add function with arguments 5 and 7. Store the returned value in a variable named result.
Go
Hint
Use := to declare and assign a variable in Go.
4
Print the result
Add a fmt.Println statement inside main to print the value of result. Remember to import the fmt package at the top.
Go
Hint
Use fmt.Println(result) to print the value. Don't forget to import fmt.
Practice
(1/5)
1. What happens when a function in Go is called?
easy
A. The code inside the function runs from top to bottom.
B. The program stops and waits for user input.
C. The function immediately returns without running any code.
D. The function runs only if it has no parameters.
Solution
Step 1: Understand function call behavior
When a function is called, Go executes the code inside it in order, from the first line to the last.
Step 2: Eliminate incorrect options
Options A, B, and C describe behaviors that are not how Go functions work when called.
Final Answer:
The code inside the function runs from top to bottom. -> Option A
Quick Check:
Function execution flow = top to bottom [OK]
Hint: Functions run code line by line when called [OK]
Common Mistakes:
Thinking functions run only if no parameters
Believing functions wait for user input automatically
Assuming functions return immediately without running code
2. Which of the following is the correct way to define a function named greet that returns a string in Go?
easy
A. func greet() { return "Hello" }
B. function greet() { return "Hello" }
C. func greet() string { return "Hello" }
D. func greet() string { print("Hello") }
Solution
Step 1: Check Go function syntax
In Go, functions start with func, followed by the name, parameters, and return type. func greet() string { return "Hello" } matches this.
Step 2: Verify return statement and type
func greet() string { return "Hello" } returns a string and has the correct syntax. The version using 'function greet() { return "Hello" }' uses wrong keyword. The version 'func greet() { return "Hello" }' misses return type. The version using print instead of return is incorrect.
Final Answer:
func greet() string { return "Hello" } -> Option C
Quick Check:
Correct Go function syntax = func greet() string { return "Hello" } [OK]
Hint: Go functions start with func and specify return type [OK]
Common Mistakes:
Using 'function' keyword instead of 'func'
Omitting return type when function returns a value
Using print instead of return for output
3. What is the output of this Go program?
package main
import "fmt"
func add(a int, b int) int {
return a + b
}
func main() {
result := add(3, 4)
fmt.Println(result)
}
medium
A. 34
B. Compilation error
C. 0
D. 7
Solution
Step 1: Understand function call and return
The function add takes two integers and returns their sum. Calling add(3, 4) returns 7.
Step 2: Check output statement
fmt.Println(result) prints the returned value, which is 7.
Final Answer:
7 -> Option D
Quick Check:
3 + 4 = 7 [OK]
Hint: Add numbers inside function, print returned result [OK]
Common Mistakes:
Concatenating numbers as strings (34)
Expecting zero without return
Thinking code has syntax errors
4. Identify the error in this Go function and select the fix:
func multiply(a int, b int) int {
product := a * b
}
func main() {
fmt.Println(multiply(2, 3))
}
medium
A. Change function to void (no return type)
B. Add a return statement: return product
C. Remove parameters a and b
D. Replace * with + operator
Solution
Step 1: Check function return type and body
The function declares it returns an int but does not have a return statement, causing a compile error.
Step 2: Fix by adding return statement
Adding return product returns the calculated value, matching the function signature.
Final Answer:
Add a return statement: return product -> Option B
Quick Check:
Function must return value if declared [OK]
Hint: Functions with return type must return a value [OK]
Common Mistakes:
Forgetting return statement in non-void functions
Changing function signature unnecessarily
Changing operators without reason
5. Given this Go code, what will be printed?
package main
import "fmt"
func process(x int) int {
if x > 0 {
return x * 2
}
return 0
}
func main() {
values := []int{3, -1, 0, 5}
sum := 0
for _, v := range values {
sum += process(v)
}
fmt.Println(sum)
}
hard
A. 16
B. 8
C. 0
D. Compilation error
Solution
Step 1: Analyze function process behavior
For each value, if positive, returns double the value; else returns 0.