Bird
Raised Fist0
Goprogramming~5 mins

Slice length and capacity in Go - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the length of a slice represent in Go?
The length of a slice is the number of elements it currently holds. It tells you how many items you can access safely.
Click to reveal answer
beginner
What does the capacity of a slice represent in Go?
The capacity of a slice is the total number of elements the slice can hold in its underlying array before it needs to allocate more memory.
Click to reveal answer
beginner
How do you get the length and capacity of a slice named s in Go?
Use the built-in functions: len(s) gives the length, and cap(s) gives the capacity.
Click to reveal answer
intermediate
If you create a slice with make([]int, 3, 5), what are its length and capacity?
Length is 3 because you asked for 3 elements initially. Capacity is 5 because the underlying array can hold up to 5 elements before resizing.
Click to reveal answer
intermediate
What happens to the capacity of a slice when you append elements beyond its current capacity?
Go automatically creates a new underlying array with larger capacity, copies the existing elements, and appends the new ones. The capacity grows, usually doubling to reduce future allocations.
Click to reveal answer
What does len(s) return for a slice s in Go?
AThe size in bytes of the slice
BThe number of elements currently in the slice
CThe total capacity of the slice
DThe memory address of the slice
What does cap(s) return for a slice s in Go?
AThe total capacity of the slice's underlying array
BThe number of elements currently in the slice
CThe length of the slice plus one
DThe number of bytes used by the slice
If you create a slice with make([]int, 4, 10), what is the length and capacity?
ALength 10, Capacity 4
BLength 10, Capacity 10
CLength 4, Capacity 4
DLength 4, Capacity 10
What happens when you append an element to a slice that is already at full capacity?
AThe program crashes
BThe slice silently ignores the append
CGo allocates a new underlying array with larger capacity and copies elements
DThe slice length decreases
Which built-in function do you use to find the capacity of a slice?
Acap()
Blen()
Csize()
Dcapacity()
Explain the difference between the length and capacity of a slice in Go.
Think about how many elements you can use now versus how many you can add before resizing.
You got /4 concepts.
    Describe what happens internally when you append an element to a slice that has reached its capacity.
    Imagine your backpack is full and you get a bigger one to carry more stuff.
    You got /4 concepts.

      Practice

      (1/5)
      1. In Go, what does the len() function return when used on a slice?
      easy
      A. The maximum number of elements the slice can hold
      B. The total memory size of the slice in bytes
      C. The index of the last element in the slice
      D. The number of elements currently in the slice

      Solution

      1. Step 1: Understand the purpose of len() on slices

        The len() function returns how many elements are currently stored in the slice.
      2. Step 2: Differentiate from capacity

        Capacity is about how many elements the slice can hold before resizing, not the current count.
      3. Final Answer:

        The number of elements currently in the slice -> Option D
      4. Quick Check:

        len(slice) = current element count [OK]
      Hint: Remember: len = current items, cap = max before grow [OK]
      Common Mistakes:
      • Confusing length with capacity
      • Thinking len returns memory size
      • Assuming len gives last index
      2. Which of the following is the correct way to create a slice with length 3 and capacity 5 in Go?
      easy
      A. make([]int, 5, 3)
      B. make([]int, 3, 5)
      C. []int{3, 5}
      D. make([]int, 3)

      Solution

      1. Step 1: Recall the make function signature for slices

        make([]T, length, capacity) creates a slice with given length and capacity.
      2. Step 2: Match length and capacity values

        To get length 3 and capacity 5, use make([]int, 3, 5).
      3. Final Answer:

        make([]int, 3, 5) -> Option B
      4. Quick Check:

        make([]int, length, capacity) [OK]
      Hint: make([]T, len, cap) sets length then capacity [OK]
      Common Mistakes:
      • Swapping length and capacity arguments
      • Using slice literal instead of make
      • Omitting capacity when needed
      3. What will be the output of this Go code?
      nums := make([]int, 2, 4)
      nums[0] = 10
      nums[1] = 20
      fmt.Println(len(nums), cap(nums))
      medium
      A. 2 2
      B. 0 4
      C. 2 4
      D. 4 4

      Solution

      1. Step 1: Analyze slice creation

        make([]int, 2, 4) creates a slice with length 2 and capacity 4.
      2. Step 2: Check length and capacity after assignments

        Assigning values to existing indices does not change length or capacity.
      3. Final Answer:

        2 4 -> Option C
      4. Quick Check:

        len = 2, cap = 4 [OK]
      Hint: Length stays same unless you append beyond capacity [OK]
      Common Mistakes:
      • Confusing length with capacity
      • Assuming capacity equals length after assignment
      • Thinking length changes when assigning values
      4. Consider this code snippet:
      arr := []int{1, 2, 3, 4, 5}
      slice := arr[1:3]
      fmt.Println(len(slice), cap(slice))

      What is the correct output?
      medium
      A. 2 4
      B. 2 2
      C. 3 4
      D. 3 5

      Solution

      1. Step 1: Determine length of the slice

        The slice is from index 1 to 3 (exclusive), so length = 3 - 1 = 2.
      2. Step 2: Calculate capacity of the slice

        Capacity is from start index to end of original array: 5 - 1 = 4.
      3. Final Answer:

        2 4 -> Option A
      4. Quick Check:

        len = 2, cap = 4 from slice indices [OK]
      Hint: Capacity = original array length - slice start index [OK]
      Common Mistakes:
      • Using slice length as capacity
      • Confusing slice end index with capacity
      • Assuming capacity equals original array length
      5. You have a slice s := make([]int, 3, 5). You append two elements to it. What will be the length and capacity of s after these appends?
      hard
      A. Length 5, Capacity 5
      B. Length 5, Capacity 10
      C. Length 3, Capacity 5
      D. Length 5, Capacity 6

      Solution

      1. Step 1: Understand initial slice size

        Slice s starts with length 3 and capacity 5.
      2. Step 2: Append two elements within capacity

        Appending two elements increases length to 5, capacity remains 5 because it is not exceeded.
      3. Final Answer:

        Length 5, Capacity 5 -> Option A
      4. Quick Check:

        Appending within capacity keeps capacity same [OK]
      Hint: Capacity grows only when length exceeds capacity [OK]
      Common Mistakes:
      • Assuming capacity doubles immediately after append
      • Confusing length with capacity after append
      • Thinking capacity increases by 1 per append
      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