Bird
Raised Fist0
Goprogramming~15 mins

Array limitations in Go - Mini Project: Build & Apply

Choose your learning style10 modes available
Array limitations
📖 Scenario: You are working with a fixed-size array in Go to store daily temperatures for a week. You want to understand how arrays have fixed sizes and what happens when you try to access or assign values outside their limits.
🎯 Goal: Build a simple Go program that creates an array of 7 integers representing temperatures, sets a configuration variable for the maximum valid index, tries to assign values within the array limits, and then prints the array.
📋 What You'll Learn
Create an array called temps with exactly 7 integers initialized to zero
Create an integer variable called maxIndex and set it to 6
Use a for loop with variable i from 0 to maxIndex to assign temps[i] = i * 5
Print the temps array using fmt.Println
💡 Why This Matters
🌍 Real World
Arrays are used in programs where you know the exact number of items in advance, like storing fixed daily data such as temperatures or sensor readings.
💼 Career
Understanding array limitations helps avoid runtime errors and is fundamental for working with data structures in Go programming jobs.
Progress0 / 4 steps
1
Create the array
Create an array called temps of type [7]int initialized with zeros.
Go
Hint

Use var temps [7]int to create an array of 7 integers initialized to zero.

2
Add maxIndex variable
Add an integer variable called maxIndex and set it to 6.
Go
Hint

Declare maxIndex as var maxIndex int = 6.

3
Assign values using a for loop
Use a for loop with variable i from 0 to maxIndex inclusive to assign temps[i] = i * 5.
Go
Hint

Use a for loop from 0 to maxIndex and assign temps[i] = i * 5 inside the loop.

4
Print the array
Print the temps array using fmt.Println(temps).
Go
Hint

Use fmt.Println(temps) to print the array.

Practice

(1/5)
1. Which statement best describes arrays in Go?
easy
A. Arrays can grow dynamically as elements are added.
B. Arrays automatically resize when elements are removed.
C. Arrays have a fixed size that cannot be changed after creation.
D. Arrays are the same as slices in Go.

Solution

  1. Step 1: Understand array size behavior

    In Go, arrays have a fixed size defined when they are created and cannot be resized later.
  2. Step 2: Compare with other options

    Options A and C describe dynamic resizing, which arrays do not support. Arrays are the same as slices in Go. is incorrect because arrays and slices are different types.
  3. Final Answer:

    Arrays have a fixed size that cannot be changed after creation. -> Option C
  4. Quick Check:

    Array size fixed = B [OK]
Hint: Remember: Go arrays have fixed size, slices are flexible [OK]
Common Mistakes:
  • Confusing arrays with slices
  • Thinking arrays can resize dynamically
  • Assuming arrays and slices are identical
2. Which of the following is the correct way to declare an array of 5 integers in Go?
easy
A. var arr [5]int
B. arr := []int{5}
C. var arr []int = make([]int, 5)
D. arr := [int]5

Solution

  1. Step 1: Identify correct array declaration syntax

    In Go, arrays are declared with the size inside square brackets before the type, like [5]int.
  2. Step 2: Analyze other options

    arr := []int{5} declares a slice with one element 5, not an array of size 5. var arr []int = make([]int, 5) declares a slice using make, not an array. arr := [int]5 is invalid syntax.
  3. Final Answer:

    var arr [5]int -> Option A
  4. Quick Check:

    Array syntax = var arr [size]type [OK]
Hint: Array size goes inside brackets before type [OK]
Common Mistakes:
  • Using slice syntax instead of array syntax
  • Placing size after type
  • Using make() for arrays
3. What will be the output of this Go code?
package main
import "fmt"
func main() {
  var arr [3]int
  arr[0] = 10
  arr[1] = 20
  fmt.Println(arr[2])
}
medium
A. 20
B. 10
C. runtime error
D. 0

Solution

  1. Step 1: Understand default array values in Go

    Arrays in Go are initialized with zero values for their type. For int, the default is 0.
  2. Step 2: Check assigned and unassigned elements

    arr[0] and arr[1] are set to 10 and 20. arr[2] is not assigned, so it remains 0.
  3. Final Answer:

    0 -> Option D
  4. Quick Check:

    Unassigned int array element = 0 [OK]
Hint: Unassigned int array elements default to 0 [OK]
Common Mistakes:
  • Expecting unassigned elements to be garbage or error
  • Confusing array with slice behavior
  • Assuming runtime error for out-of-range access
4. What is wrong with this Go code snippet?
var arr [3]int
arr = append(arr, 4)
medium
A. The syntax is correct; no error.
B. Arrays cannot be appended to; append works only with slices.
C. append requires a pointer to the array.
D. The array size is too small for append.

Solution

  1. Step 1: Understand append function usage

    In Go, append is used only with slices, not arrays.
  2. Step 2: Identify error cause

    Trying to append to an array causes a compile-time error because arrays have fixed size and do not support append.
  3. Final Answer:

    Arrays cannot be appended to; append works only with slices. -> Option B
  4. Quick Check:

    append() works only with slices [OK]
Hint: Use slices, not arrays, with append() [OK]
Common Mistakes:
  • Trying to append to arrays
  • Assuming append resizes arrays
  • Ignoring compile-time errors
5. You need a collection that can grow and shrink dynamically in Go. Which approach correctly solves this limitation of arrays?
hard
A. Use slices instead of arrays for flexible size.
B. Declare a very large array to hold all possible elements.
C. Manually copy array elements to a new larger array when needed.
D. Use a map with integer keys instead of an array.

Solution

  1. Step 1: Identify the limitation of arrays

    Arrays have fixed size and cannot grow or shrink dynamically.
  2. Step 2: Choose the flexible collection type

    Slices in Go provide dynamic resizing and are the recommended way to handle flexible collections.
  3. Step 3: Evaluate other options

    Declare a very large array to hold all possible elements. wastes memory and is inflexible. Manually copy array elements to a new larger array when needed. is manual and error-prone. Use a map with integer keys instead of an array. changes data structure but not necessarily size flexibility.
  4. Final Answer:

    Use slices instead of arrays for flexible size. -> Option A
  5. Quick Check:

    Dynamic size needs slices = A [OK]
Hint: Slices provide dynamic size, arrays do not [OK]
Common Mistakes:
  • Trying to resize arrays manually
  • Using large fixed arrays to simulate flexibility
  • Confusing maps with dynamic arrays
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