Bird
Raised Fist0
Goprogramming~5 mins

Iterating over arrays in Go - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the basic way to loop over an array in Go?
Use the for loop with range to get index and value for each element in the array.
Click to reveal answer
beginner
What does the range keyword return when used with an array?
It returns two values: the current index and the value at that index in the array.
Click to reveal answer
beginner
How can you ignore the index when iterating over an array in Go?
Use an underscore _ in place of the index variable to ignore it, like for _, value := range arr.
Click to reveal answer
intermediate
Can you modify array elements while iterating with range in Go?
No, the value returned by range is a copy. To modify elements, use the index to access the array directly.
Click to reveal answer
beginner
Write a simple Go code snippet to print all elements of an array of integers.
```go
package main

import "fmt"

func main() {
    arr := [3]int{10, 20, 30}
    for i, v := range arr {
        fmt.Printf("Index %d: Value %d\n", i, v)
    }
}
```
Click to reveal answer
What does the range keyword return when used on an array in Go?
AOnly the index of each element
BOnly the value of each element
CIndex and value of each element
DThe entire array
How do you ignore the index when using range to iterate over an array?
AUse <code>_</code> instead of the index variable
BUse <code>nil</code> instead of the index variable
CUse <code>0</code> instead of the index variable
DYou cannot ignore the index
Can you change the elements of an array by modifying the value variable inside a range loop?
ANo, because the value is a copy
BYes, it changes the original array
COnly if the array is a slice
DOnly if you use pointers
Which of these is the correct syntax to iterate over an array arr in Go?
Afor (i, v) in arr {}
Bfor i in arr {}
Cforeach arr as i, v {}
Dfor i, v := range arr {}
What happens if you omit the index variable in a range loop like for v := range arr?
AIt will iterate only over the values
BIt will cause a compile error
CIt will iterate only over the indexes
DIt will iterate over both index and value
Explain how to use a for range loop to iterate over an array in Go and print each element.
Think about how you get both index and value from the array.
You got /4 concepts.
    Describe why modifying the value variable inside a range loop does not change the original array elements.
    Consider how Go handles values when iterating.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the range keyword do when used with an array in Go?
      easy
      A. It creates a new array with copied elements.
      B. It changes the size of the array during iteration.
      C. It lets you loop over each element and get its index and value.
      D. It sorts the array elements automatically.

      Solution

      1. Step 1: Understand the role of range in loops

        The range keyword in Go is used to iterate over elements in arrays, slices, maps, and more, providing both the index and the value of each element.
      2. Step 2: Identify what range does with arrays

        When used with an array, range returns the index and the value of each element one by one, allowing you to process or read each item.
      3. Final Answer:

        It lets you loop over each element and get its index and value. -> Option C
      4. Quick Check:

        range loops with index and value [OK]
      Hint: Remember: range gives index and value for each element [OK]
      Common Mistakes:
      • Thinking range changes array size
      • Assuming range sorts elements
      • Believing range copies the array
      2. Which of the following is the correct syntax to iterate over an array named nums in Go?
      easy
      A. for i, v := range nums { fmt.Println(i, v) }
      B. for i in nums { fmt.Println(i) }
      C. foreach i, v in nums { fmt.Println(i, v) }
      D. for (i, v) in nums { fmt.Println(i, v) }

      Solution

      1. Step 1: Recall Go's for-range loop syntax

        In Go, the correct way to iterate over arrays or slices is using for index, value := range array syntax.
      2. Step 2: Match the syntax with the options

        for i, v := range nums { fmt.Println(i, v) } uses for i, v := range nums, which is the correct Go syntax. Other options use invalid or non-Go syntax.
      3. Final Answer:

        for i, v := range nums { fmt.Println(i, v) } -> Option A
      4. Quick Check:

        Go uses for i, v := range array [OK]
      Hint: Use 'for i, v := range array' for Go array loops [OK]
      Common Mistakes:
      • Using 'for i in nums' like Python
      • Using 'foreach' which is not Go syntax
      • Using parentheses in for loop header
      3. What will be the output of this Go code?
      nums := [3]int{10, 20, 30}
      for i, v := range nums {
          fmt.Println(i, v)
      }
      medium
      A. 0 0 1 1 2 2
      B. 10 0 20 1 30 2
      C. Syntax error
      D. 0 10 1 20 2 30

      Solution

      1. Step 1: Understand the array and loop

        The array nums has 3 elements: 10 at index 0, 20 at index 1, and 30 at index 2. The loop uses range to get index and value.
      2. 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".
      3. Final Answer:

        0 10 1 20 2 30 -> Option D
      4. Quick Check:

        Index and value printed in order [OK]
      Hint: range returns index then value in order [OK]
      Common Mistakes:
      • Swapping index and value in print
      • Expecting values as indexes
      • Thinking code has syntax error
      4. Identify the error in this Go code snippet:
      nums := [3]int{1, 2, 3}
      for i, v = range nums {
          fmt.Println(i, v)
      }
      medium
      A. Missing colon in 'for i, v = range nums' should be ':='
      B. Using '=' instead of '==' in loop condition
      C. Array declaration syntax is wrong
      D. fmt.Println cannot print two variables

      Solution

      1. 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 '='.
      2. Step 2: Identify the syntax error

        The code uses '=' instead of ':=' in for i, v = range nums, which causes a syntax error.
      3. Final Answer:

        Missing colon in 'for i, v = range nums' should be ':=' -> Option A
      4. Quick Check:

        Use ':=' to declare variables in for-range loops [OK]
      Hint: Use ':=' not '=' in for-range variable declaration [OK]
      Common Mistakes:
      • Using '=' instead of ':=' in for loop
      • Confusing assignment with comparison
      • Incorrect array syntax blamed
      5. Given an array nums := [5]int{1, 2, 3, 4, 5}, how can you create a new slice containing only the even numbers using iteration?
      hard
      A. Use a for loop to change the array size and remove odd numbers.
      B. Use a for-range loop to check each value and append even numbers to a slice.
      C. Use range to multiply all numbers by 2 and store in a new array.
      D. Use a for loop with index only and ignore values.

      Solution

      1. Step 1: Understand the goal and array

        The goal is to create a new slice with only even numbers from the array nums. Arrays have fixed size, so we cannot remove elements from it.
      2. Step 2: Use for-range loop and append even values

        We iterate over nums using for _, v := range nums, check if v % 2 == 0, and append those values to a new slice.
      3. Final Answer:

        Use a for-range loop to check each value and append even numbers to a slice. -> Option B
      4. Quick Check:

        Filter with for-range and append even numbers [OK]
      Hint: Filter with for-range and append to slice [OK]
      Common Mistakes:
      • Trying to change array size directly
      • Ignoring values in loop
      • Multiplying instead of filtering
      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