What does it mean when a Go function has multiple return values?
It means the function can send back more than one result at the same time, like returning both a value and an error.
Click to reveal answer
beginner
How do you declare a function in Go that returns two values, an int and an error?
You write the return types in parentheses, like: func example() (int, error).
Click to reveal answer
beginner
Why are multiple return values useful in Go?
They let you return extra information, like an error, without needing special structures. This helps keep code simple and clear.
Click to reveal answer
intermediate
Given this function signature: func divide(a, b int) (int, error), what should the function return if b is zero?
It should return zero and an error explaining division by zero is not allowed.
Click to reveal answer
beginner
How do you capture multiple return values from a function call in Go?
You assign them to multiple variables separated by commas, like: result, err := divide(10, 2).
Click to reveal answer
What is the correct way to declare a Go function that returns a string and an error?
Afunc example() string error
Bfunc example() (string, error)
Cfunc example() string, error
Dfunc example() (string error)
✗ Incorrect
In Go, multiple return types are enclosed in parentheses and separated by commas.
How do you receive two return values from a Go function call?
Aresult := function()
Bresult; err := function()
Cresult, err := function()
Dresult err = function()
✗ Incorrect
Use comma-separated variables with := to receive multiple return values.
Why might a Go function return an error as a second value?
ATo confuse the programmer
BTo return a second result always
CTo slow down the program
DTo indicate if something went wrong during execution
✗ Incorrect
Returning an error helps the caller know if the function succeeded or failed.
What happens if you ignore the second return value (error) in Go?
AYou can ignore it but risk missing errors
BThe program will not compile
CThe function returns only one value
DThe error is automatically handled
✗ Incorrect
You can ignore the error but it is risky because you might miss important problems.
Which of these is a valid way to return multiple values in Go?
Areturn value1, value2
Breturn (value1, value2)
Creturn [value1, value2]
Dreturn {value1, value2}
✗ Incorrect
Go returns multiple values separated by commas without extra brackets.
Explain how multiple return values work in Go and why they are useful.
Think about how functions can send back both results and errors.
You got /3 concepts.
Describe how you would write and call a Go function that returns a number and an error.
Remember to use parentheses for return types and comma to receive values.
You got /3 concepts.
Practice
(1/5)
1. In Go, what does it mean when a function returns multiple values?
easy
A. The function sends back more than one result at the same time.
B. The function can only return one value but multiple times.
C. The function returns a list of values inside a slice.
D. The function returns values only if an error occurs.
Solution
Step 1: Understand function return types in Go
Go functions can list multiple types in parentheses to return several values together.
Step 2: Interpret multiple return values meaning
This means the function sends back more than one result at once, not just one or a list.
Final Answer:
The function sends back more than one result at the same time. -> Option A
Quick Check:
Multiple return values = more than one result [OK]
Hint: Multiple return means several results sent together [OK]
Common Mistakes:
Thinking it returns a slice or array
Assuming only one value can be returned
Confusing multiple returns with repeated calls
2. Which of the following is the correct syntax to declare a function in Go that returns two integers?
easy
A. func add() int, int { return 1, 2 }
B. func add() [int, int] { return 1, 2 }
C. func add() { return 1, 2 }
D. func add() (int, int) { return 1, 2 }
Solution
Step 1: Check Go function return type syntax
In Go, multiple return types are enclosed in parentheses like (int, int).
Step 2: Match syntax with options
func add() (int, int) { return 1, 2 } correctly uses (int, int) and returns two integers separated by a comma.
Final Answer:
func add() (int, int) { return 1, 2 } -> Option D
Quick Check:
Multiple returns use parentheses (type1, type2) [OK]
Hint: Use parentheses around multiple return types [OK]
Common Mistakes:
Omitting parentheses around return types
Using square brackets instead of parentheses
Returning multiple values without declaring types
3. What will be the output of this Go program?
package main
import "fmt"
func divide(a, b int) (int, int) {
return a / b, a % b
}
func main() {
q, r := divide(10, 3)
fmt.Println(q, r)
}
medium
A. 3 3
B. 3 0
C. 3 1
D. 10 3
Solution
Step 1: Understand the divide function
The function returns two values: quotient (a / b) and remainder (a % b).
Step 2: Calculate divide(10, 3)
10 divided by 3 is 3 with remainder 1, so returns (3, 1).
Final Answer:
3 1 -> Option C
Quick Check:
10/3=3 remainder 1 [OK]
Hint: Remember / is quotient, % is remainder [OK]
Common Mistakes:
Confusing remainder with quotient
Swapping the order of returned values
Expecting a single return value
4. Identify the error in this Go function that returns two strings:
func names() (string, string) {
return "Alice"
}
medium
A. Missing second return value causes a compile error.
B. Function should return only one string, not two.
C. Return statement syntax is incorrect.
D. Function must have parameters to return multiple values.
Solution
Step 1: Check function return signature
The function declares it returns two strings (string, string).
Step 2: Check return statement
It returns only one string "Alice", missing the second value, causing a compile error.
Final Answer:
Missing second return value causes a compile error. -> Option A
Quick Check:
Return count must match declared types [OK]
Hint: Return values count must match function signature [OK]
Common Mistakes:
Returning fewer values than declared
Assuming parameters affect return count
Incorrect return statement syntax
5. You want to write a Go function that returns the minimum and maximum values from a slice of integers. Which function correctly returns both values?
hard
A. func minMax(nums []int) int {
min, max := nums[0], nums[0]
for _, v := range nums {
if v < min {
min = v
}
if v > max {
max = v
}
}
return min, max
}
B. func minMax(nums []int) (int, int) {
min, max := nums[0], nums[0]
for _, v := range nums {
if v < min {
min = v
}
if v > max {
max = v
}
}
return min, max
}
C. func minMax(nums []int) (int) {
min, max := nums[0], nums[0]
for _, v := range nums {
if v < min {
min = v
}
if v > max {
max = v
}
}
return min, max
}
D. func minMax(nums []int) (int, int) {
min := nums[0]
max := nums[0]
for i := 1; i < len(nums); i++ {
if nums[i] < min {
min = nums[i]
}
if nums[i] > max {
max = nums[i]
}
}
return max, min
}
Solution
Step 1: Check function return types
Function must return two integers (min and max), so signature must be (int, int).
Step 2: Verify logic and return order
func minMax(nums []int) (int, int) {
min, max := nums[0], nums[0]
for _, v := range nums {
if v < min {
min = v
}
if v > max {
max = v
}
}
return min, max
} correctly initializes min and max, loops through nums, updates min and max, and returns min, max in correct order.
Final Answer:
func minMax(nums []int) (int, int) {
min, max := nums[0], nums[0]
for _, v := range nums {
if v < min {
min = v
}
if v > max {
max = v
}
}
return min, max
} -> Option B
Quick Check:
Return (min, max) with correct signature and logic [OK]
Hint: Return multiple values with matching signature and correct order [OK]
Common Mistakes:
Wrong return type signature
Returning values in wrong order
Returning only one value instead of two
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.