Bird
Raised Fist0
Goprogramming~10 mins

Appending to slices in Go - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to append the value 5 to the slice.

Go
numbers := []int{1, 2, 3, 4}
numbers = append(numbers, [1])
Drag options to blanks, or click blank then click option'
Aappend
B"5"
Cnumbers
D5
Attempts:
3 left
💡 Hint
Common Mistakes
Using quotes around 5, which makes it a string instead of an integer.
Trying to append the slice itself instead of a value.
2fill in blank
medium

Complete the code to append all elements from slice b to slice a.

Go
a := []int{1, 2}
b := []int{3, 4}
a = append(a, [1]...)
fmt.Println(a)
Drag options to blanks, or click blank then click option'
Aa
Bb
Cappend
D3
Attempts:
3 left
💡 Hint
Common Mistakes
Appending the slice without the spread operator, which causes a compile error.
Appending the wrong slice.
3fill in blank
hard

Fix the error in the code to append the value 10 to the slice.

Go
var nums []int
nums = append([1], 10)
fmt.Println(nums)
Drag options to blanks, or click blank then click option'
Anums
B10
Cappend
Dnil
Attempts:
3 left
💡 Hint
Common Mistakes
Using nil instead of the slice variable as the first argument.
Trying to append to the value 10.
4fill in blank
hard

Fill both blanks to create a new slice with squares of numbers greater than 3.

Go
nums := []int{1, 2, 3, 4, 5}
squares := []int{}
for _, n := range nums {
    if n [1] 3 {
        squares = append(squares, n[2]n)
    }
}
fmt.Println(squares)
Drag options to blanks, or click blank then click option'
A>
B*
C<
D+
Attempts:
3 left
💡 Hint
Common Mistakes
Using less than instead of greater than in the condition.
Using addition instead of multiplication for squaring.
5fill in blank
hard

Fill all three blanks to create a map of numbers and their squares for numbers less than 5.

Go
nums := []int{1, 2, 3, 4, 5}
squares := map[int]int{}
for _, n := range nums {
    if n [1] 5 {
        squares[[2]] = n[3]n
    }
}
fmt.Println(squares)
Drag options to blanks, or click blank then click option'
A<
Bn
C*
D+
Attempts:
3 left
💡 Hint
Common Mistakes
Using greater than instead of less than in the condition.
Using addition instead of multiplication for the square.
Using the wrong key in the map.

Practice

(1/5)
1. What does the append function do in Go when used with slices?
easy
A. It adds new elements to the end of a slice, returning the updated slice.
B. It removes elements from the beginning of a slice.
C. It sorts the elements of a slice in ascending order.
D. It copies elements from one slice to another without changing size.

Solution

  1. Step 1: Understand the purpose of append

    The append function is designed to add elements to the end of a slice in Go.
  2. Step 2: Recognize the return value

    Append returns a new slice that includes the original elements plus the added ones.
  3. Final Answer:

    It adds new elements to the end of a slice, returning the updated slice. -> Option A
  4. Quick Check:

    append adds elements to slice end = A [OK]
Hint: Append adds elements at the end and returns the new slice [OK]
Common Mistakes:
  • Thinking append removes elements
  • Assuming append sorts the slice
  • Not realizing append returns a new slice
2. Which of the following is the correct way to append the integer 5 to a slice named nums?
easy
A. nums.append(5)
B. append(nums, 5)
C. nums = append(nums, 5)
D. nums += 5

Solution

  1. Step 1: Recall append syntax in Go

    Append returns a new slice, so you must assign it back to the original slice variable.
  2. Step 2: Check each option

    nums = append(nums, 5) correctly assigns the result of append back to nums. Options A, B, and D don't work correctly.
  3. Final Answer:

    nums = append(nums, 5) -> Option C
  4. Quick Check:

    Assign append result back to slice = C [OK]
Hint: Always assign append result back to your slice variable [OK]
Common Mistakes:
  • Not assigning append result back to slice
  • Using method call syntax like nums.append()
  • Trying to add element with += operator
3. What will be the output of this Go code?
nums := []int{1, 2, 3}
nums = append(nums, 4, 5)
fmt.Println(nums)
medium
A. [1 2 3]
B. Compilation error
C. [4 5]
D. [1 2 3 4 5]

Solution

  1. Step 1: Understand initial slice and append

    nums starts as [1, 2, 3]. Append adds 4 and 5 to the end.
  2. Step 2: Result after append

    After append, nums becomes [1, 2, 3, 4, 5]. Printing nums shows this full slice.
  3. Final Answer:

    [1 2 3 4 5] -> Option D
  4. Quick Check:

    Appending multiple elements adds all to slice end = D [OK]
Hint: Append can add multiple elements at once [OK]
Common Mistakes:
  • Expecting append to replace elements
  • Thinking append returns only new elements
  • Confusing slice initialization syntax
4. Identify the error in this Go code snippet:
var letters []string
append(letters, "a")
fmt.Println(letters)
medium
A. append result is not assigned back to letters
B. letters slice is nil and cannot be appended to
C. Syntax error in append function call
D. fmt.Println cannot print slices

Solution

  1. Step 1: Check slice initialization

    letters is a nil slice but append can still add elements to it.
  2. Step 2: Check append usage

    Append returns a new slice; the code does not assign this back to letters, so letters remains nil.
  3. Final Answer:

    append result is not assigned back to letters -> Option A
  4. Quick Check:

    Always assign append result back to slice = B [OK]
Hint: Assign append result to slice even if slice is nil [OK]
Common Mistakes:
  • Assuming append modifies slice in place
  • Thinking nil slice cannot be appended to
  • Believing fmt.Println can't print slices
5. Given a slice data := []int{1, 2, 3}, which code snippet correctly appends all elements from another slice extra := []int{4, 5, 6} to data?
hard
A. data = append(data, &extra...)
B. data = append(data, extra...)
C. data = append(data, extra)
D. data = append(data, *extra)

Solution

  1. Step 1: Understand appending slices

    To append all elements of one slice to another, use the ... operator to unpack elements.
  2. Step 2: Analyze options

    data = append(data, extra...) correctly uses append with extra unpacked as extra.... Options B, C, and D have syntax errors or incorrect usage.
  3. Final Answer:

    data = append(data, extra...) -> Option B
  4. Quick Check:

    Use ... to append all slice elements = A [OK]
Hint: Use ... to unpack slice elements when appending [OK]
Common Mistakes:
  • Trying to append slice without ... (adds slice as single element)
  • Using pointer or dereference incorrectly
  • Trying to append slice as single element
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