Bird
Raised Fist0
Goprogramming~10 mins

Slice creation 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 create a slice of integers named numbers.

Go
numbers := [1]
Drag options to blanks, or click blank then click option'
A[]int{1, 2, 3, 4}
B[4]int{1, 2, 3, 4}
Cmap[int]int{1:2, 3:4}
Dint{1, 2, 3, 4}
Attempts:
3 left
💡 Hint
Common Mistakes
Using array syntax with size instead of slice syntax.
Using map syntax instead of slice.
Omitting the brackets.
2fill in blank
medium

Complete the code to create an empty slice of strings named words.

Go
var words [1]
Drag options to blanks, or click blank then click option'
Amap[string]string
Bstring
C[]string
D[3]string
Attempts:
3 left
💡 Hint
Common Mistakes
Using array type instead of slice.
Using map type instead of slice.
Declaring as a single string variable.
3fill in blank
hard

Fix the error in the code to create a slice of floats with length 5.

Go
floats := make([1], 5)
Drag options to blanks, or click blank then click option'
A[]float64
Bmap[float64]int
Cfloat64
D[5]float64
Attempts:
3 left
💡 Hint
Common Mistakes
Using array type instead of slice in make.
Using a single type without brackets.
Using map type instead of slice.
4fill in blank
hard

Fill both blanks to create a slice of integers with length 3 and capacity 5.

Go
nums := make([1], [2], 5)
Drag options to blanks, or click blank then click option'
A[]int
B3
C5
Dint
Attempts:
3 left
💡 Hint
Common Mistakes
Using array type instead of slice type.
Swapping length and capacity values.
Using a single type without brackets.
5fill in blank
hard

Fill all three blanks to create a slice of strings named colors with initial values and print its length.

Go
colors := [1]{"red", "green", "blue"}
fmt.Println(len([2]))
fmt.Println([3][1])
Drag options to blanks, or click blank then click option'
A[]string
Bcolors
Dmap[string]int
Attempts:
3 left
💡 Hint
Common Mistakes
Using map type instead of slice.
Using wrong variable names in print statements.
Omitting brackets in slice creation.

Practice

(1/5)
1. What is a slice in Go programming?
easy
A. A flexible, dynamically-sized list of elements.
B. A fixed-size array that cannot change length.
C. A function that slices strings.
D. A type of map with keys and values.

Solution

  1. Step 1: Understand slice definition

    A slice in Go is a data structure that holds a list of elements and can grow or shrink in size.
  2. Step 2: Compare with other types

    Unlike arrays, slices are dynamic and flexible, unlike maps or functions.
  3. Final Answer:

    A flexible, dynamically-sized list of elements. -> Option A
  4. Quick Check:

    Slice = dynamic list [OK]
Hint: Remember: slices can grow, arrays cannot [OK]
Common Mistakes:
  • Confusing slices with fixed-size arrays
  • Thinking slices are functions
  • Mixing slices with maps
2. Which of the following is the correct way to create an empty slice of integers in Go?
easy
A. var s []int
B. s := []int{}
C. s := make([]int, 0)
D. All of the above

Solution

  1. Step 1: Review slice creation methods

    In Go, you can create an empty slice by declaring a nil slice, using a slice literal with no elements, or using make with length zero.
  2. Step 2: Confirm all options are valid

    All three options create an empty slice of integers correctly.
  3. Final Answer:

    All of the above -> Option D
  4. Quick Check:

    Empty slice creation = D [OK]
Hint: Empty slices can be made in multiple valid ways [OK]
Common Mistakes:
  • Using make with negative length
  • Confusing array and slice syntax
  • Forgetting to initialize slice before use
3. What will be the output of this Go code?
package main
import "fmt"
func main() {
  s := []int{1, 2, 3}
  s = append(s, 4)
  fmt.Println(s)
}
medium
A. [1 2 3]
B. [1 2 3 4]
C. [4]
D. Compilation error

Solution

  1. Step 1: Understand initial slice and append

    The slice s starts with elements 1, 2, 3. The append function adds 4 to the end.
  2. Step 2: Print the updated slice

    After append, s contains [1 2 3 4], which is printed.
  3. Final Answer:

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

    append adds element to slice [OK]
Hint: append adds elements to the end of a slice [OK]
Common Mistakes:
  • Expecting append to replace elements
  • Thinking append returns a new slice without assignment
  • Confusing slice with array syntax
4. Identify the error in this Go code snippet:
package main
func main() {
  s := make([]int, 3)
  s[3] = 10
}
medium
A. Slice s is nil
B. Syntax error in make function
C. Index out of range error at s[3]
D. No error, code runs fine

Solution

  1. Step 1: Analyze slice length and indexing

    make([]int, 3) creates a slice with length 3, valid indices are 0, 1, 2.
  2. Step 2: Check index used in assignment

    Accessing s[3] is out of range and causes a runtime panic.
  3. Final Answer:

    Index out of range error at s[3] -> Option C
  4. Quick Check:

    Slice indices start at 0, max index = length-1 [OK]
Hint: Slice indices go from 0 to length-1 only [OK]
Common Mistakes:
  • Using index equal to slice length
  • Confusing slice length and capacity
  • Assuming make creates larger slice than specified
5. Given the code below, what will be the length and capacity of slice s after execution?
package main
import "fmt"
func main() {
  s := make([]int, 2, 5)
  s = append(s, 3, 4, 5)
  fmt.Println(len(s), cap(s))
}
hard
A. 5 5
B. 5 10
C. 7 10
D. 3 5

Solution

  1. Step 1: Understand make parameters

    make([]int, 2, 5) creates a slice with length 2 and capacity 5.
  2. Step 2: Append three elements

    Appending 3 elements increases length from 2 to 5, capacity remains 5 as it is enough.
  3. Final Answer:

    5 5 -> Option A
  4. Quick Check:

    Length grows with append, capacity stays if enough [OK]
Hint: Capacity grows only if append exceeds current capacity [OK]
Common Mistakes:
  • Assuming capacity doubles automatically
  • Confusing length and capacity
  • Forgetting append increases length
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