📖 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
Step 1: Understand array size behavior
In Go, arrays have a fixed size defined when they are created and cannot be resized later.
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.
Final Answer:
Arrays have a fixed size that cannot be changed after creation. -> Option C
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
Step 1: Identify correct array declaration syntax
In Go, arrays are declared with the size inside square brackets before the type, like [5]int.
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.
Final Answer:
var arr [5]int -> Option A
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
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.
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.
Final Answer:
0 -> Option D
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
Step 1: Understand append function usage
In Go, append is used only with slices, not arrays.
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.
Final Answer:
Arrays cannot be appended to; append works only with slices. -> Option B
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
Step 1: Identify the limitation of arrays
Arrays have fixed size and cannot grow or shrink dynamically.
Step 2: Choose the flexible collection type
Slices in Go provide dynamic resizing and are the recommended way to handle flexible collections.
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.
Final Answer:
Use slices instead of arrays for flexible size. -> Option A
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 unknownstrongwhile earning +1 Grip toward your certificate.