We use iteration to look at each item in an array one by one. This helps us do something with every item, like printing or changing it.
Iterating over arrays in Go
package main import "fmt" type ArrayExample struct { items [5]int } func (a *ArrayExample) Iterate() { for index, value := range a.items { fmt.Printf("Index %d has value %d\n", index, value) } }
The range keyword helps us go through each item in the array easily.
You get both the index and the value of each item during iteration.
package main import "fmt" func main() { var numbers [3]int = [3]int{10, 20, 30} for i, v := range numbers { fmt.Println(i, v) } }
package main import "fmt" func main() { var emptyArray [0]int for i, v := range emptyArray { fmt.Println(i, v) // This will not print anything } }
package main import "fmt" func main() { var singleElement [1]string = [1]string{"hello"} for i, v := range singleElement { fmt.Println(i, v) } }
package main import "fmt" func main() { var letters [4]string = [4]string{"a", "b", "c", "d"} for i, v := range letters { if i == 0 || i == len(letters)-1 { fmt.Println("Edge element:", v) } } }
This program creates an array of fruits and prints each fruit with its position.
package main import "fmt" func main() { var fruits [5]string = [5]string{"apple", "banana", "cherry", "date", "elderberry"} fmt.Println("Before iteration:", fruits) fmt.Println("Iterating over fruits array:") for index, fruit := range fruits { fmt.Printf("Fruit at index %d is %s\n", index, fruit) } }
Time complexity is O(n) because we visit each item once.
Space complexity is O(1) extra space since we only use a few variables.
Common mistake: forgetting that arrays have fixed size in Go, so you cannot add or remove items during iteration.
Use iteration when you want to process or check every item. For changing size, use slices instead.
Iteration lets you visit each item in an array one by one.
Use for index, value := range array to loop through arrays in Go.
Remember arrays have fixed size, so iteration is for reading or updating items, not changing size.
Practice
range keyword do when used with an array in Go?Solution
Step 1: Understand the role of
Therangein loopsrangekeyword in Go is used to iterate over elements in arrays, slices, maps, and more, providing both the index and the value of each element.Step 2: Identify what
When used with an array,rangedoes with arraysrangereturns the index and the value of each element one by one, allowing you to process or read each item.Final Answer:
It lets you loop over each element and get its index and value. -> Option CQuick Check:
rangeloops with index and value [OK]
- Thinking range changes array size
- Assuming range sorts elements
- Believing range copies the array
nums in Go?Solution
Step 1: Recall Go's for-range loop syntax
In Go, the correct way to iterate over arrays or slices is usingfor index, value := range arraysyntax.Step 2: Match the syntax with the options
for i, v := range nums { fmt.Println(i, v) } usesfor i, v := range nums, which is the correct Go syntax. Other options use invalid or non-Go syntax.Final Answer:
for i, v := range nums { fmt.Println(i, v) } -> Option AQuick Check:
Go usesfor i, v := range array[OK]
- Using 'for i in nums' like Python
- Using 'foreach' which is not Go syntax
- Using parentheses in for loop header
nums := [3]int{10, 20, 30}
for i, v := range nums {
fmt.Println(i, v)
}Solution
Step 1: Understand the array and loop
The arraynumshas 3 elements: 10 at index 0, 20 at index 1, and 30 at index 2. The loop usesrangeto get index and value.Step 2: Trace the loop output
Each iteration prints the index and the value: first line prints "0 10", second "1 20", third "2 30".Final Answer:
0 10 1 20 2 30 -> Option DQuick Check:
Index and value printed in order [OK]
- Swapping index and value in print
- Expecting values as indexes
- Thinking code has syntax error
nums := [3]int{1, 2, 3}
for i, v = range nums {
fmt.Println(i, v)
}Solution
Step 1: Check the for loop variable declaration
In Go, when declaring variables in a for-range loop, you must use ':=' to declare and assign variables, not '='.Step 2: Identify the syntax error
The code uses '=' instead of ':=' infor i, v = range nums, which causes a syntax error.Final Answer:
Missing colon in 'for i, v = range nums' should be ':=' -> Option AQuick Check:
Use ':=' to declare variables in for-range loops [OK]
- Using '=' instead of ':=' in for loop
- Confusing assignment with comparison
- Incorrect array syntax blamed
nums := [5]int{1, 2, 3, 4, 5}, how can you create a new slice containing only the even numbers using iteration?Solution
Step 1: Understand the goal and array
The goal is to create a new slice with only even numbers from the arraynums. Arrays have fixed size, so we cannot remove elements from it.Step 2: Use for-range loop and append even values
We iterate overnumsusingfor _, v := range nums, check ifv % 2 == 0, and append those values to a new slice.Final Answer:
Use a for-range loop to check each value and append even numbers to a slice. -> Option BQuick Check:
Filter with for-range and append even numbers [OK]
- Trying to change array size directly
- Ignoring values in loop
- Multiplying instead of filtering
Ready to prove it?
Pass the test and this pattern moves unknown
