Bird
Raised Fist0
Goprogramming~10 mins

Type inference 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 declare a variable with type inference.

Go
var x = [1]
Drag options to blanks, or click blank then click option'
Avar
Bint
C"Hello, Go!"
Dstring
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using a type name instead of a value after the equals sign.
Trying to declare type explicitly when using type inference.
2fill in blank
medium

Complete the code to declare and initialize a variable using short variable declaration with type inference.

Go
count [1] 10
Drag options to blanks, or click blank then click option'
A==
B=
Cvar
D:=
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using single equals sign which is assignment, not declaration.
Using double equals which is a comparison operator.
3fill in blank
hard

Fix the error in the code by completing the variable declaration with type inference.

Go
var pi [1] 3.14
Drag options to blanks, or click blank then click option'
A=
B:=
Cfloat64
D==
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using := with var keyword causes syntax error.
Using == which is a comparison operator.
4fill in blank
hard

Fill both blanks to declare a variable with type inference and assign a boolean value.

Go
isReady [1] [2]
Drag options to blanks, or click blank then click option'
A:=
Btrue
Cfalse
D=
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using = instead of := for declaration.
Using false instead of true if the goal is to assign true.
5fill in blank
hard

Fill both blanks to create a map with type inference and initialize it with values.

Go
scores := map[string]int{"Alice": {BLANK_2}}, "Bob": {{BLANK_2}}
Drag options to blanks, or click blank then click option'
A{
B90
C85
D}
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Omitting the opening or closing curly braces.
Using string values instead of integers for scores.

Practice

(1/5)
1. What does type inference mean in Go when you write x := 10 inside a function?
easy
A. You must tell Go the type of x explicitly.
B. Go automatically figures out that x is an int.
C. Go treats x as a string by default.
D. The variable x has no type.

Solution

  1. Step 1: Understand the := operator in Go

    The := operator declares a variable and assigns a value, letting Go guess the type.
  2. Step 2: Check the assigned value type

    Since 10 is an integer, Go infers the type of x as int automatically.
  3. Final Answer:

    Go automatically figures out that x is an int. -> Option B
  4. Quick Check:

    Type inference means Go guesses type from value [OK]
Hint: := means declare and infer type from value [OK]
Common Mistakes:
  • Thinking you must always write the type explicitly
  • Assuming variables have no type
  • Believing Go defaults to string type
2. Which of the following is the correct way to declare and assign a variable with type inference inside a function in Go?
easy
A. x := 5
B. x = 5
C. var x int = 5
D. int x = 5

Solution

  1. Step 1: Recall Go syntax for type inference

    Inside functions, := declares and assigns a variable with inferred type.
  2. Step 2: Check each option

    var x int = 5 declares with explicit type, not inference. x = 5 misses declaration. int x = 5 is invalid Go syntax.
  3. Final Answer:

    x := 5 -> Option A
  4. Quick Check:

    Use := to declare and infer type [OK]
Hint: Use := inside functions for type inference [OK]
Common Mistakes:
  • Using C or D which are invalid Go syntax
  • Forgetting to declare variable before assignment
  • Confusing var declaration with :=
3. What is the output of this Go program?
package main
import "fmt"
func main() {
    x := 3.14
    fmt.Printf("%T", x)
}
medium
A. float64
B. float32
C. int
D. string

Solution

  1. Step 1: Identify the type inferred for 3.14

    In Go, untyped floating-point constants default to float64 when assigned with :=.
  2. Step 2: Understand fmt.Printf with %T

    The %T verb prints the type of the variable, so it will print "float64".
  3. Final Answer:

    float64 -> Option A
  4. Quick Check:

    Float literals default to float64 [OK]
Hint: Float literals default to float64 type [OK]
Common Mistakes:
  • Assuming float32 is default
  • Thinking 3.14 is int
  • Confusing %T output with value
4. What is wrong with this Go code snippet?
func main() {
    var x := 10
    fmt.Println(x)
}
medium
A. The value 10 is not a valid integer.
B. x is not declared before use.
C. You cannot use := with var keyword.
D. fmt.Println is not imported.

Solution

  1. Step 1: Understand variable declaration syntax

    In Go, := is shorthand for declaration and assignment without var keyword.
  2. Step 2: Identify the syntax error

    Using var and := together is invalid syntax; you must use either var x = 10 or x := 10.
  3. Final Answer:

    You cannot use := with var keyword. -> Option C
  4. Quick Check:

    var and := cannot be combined [OK]
Hint: Don't combine var and := in one statement [OK]
Common Mistakes:
  • Mixing var and := together
  • Ignoring import errors (not shown here)
  • Thinking := works outside functions
5. Given this Go code, what is the type of result after execution?
func main() {
    a := 5
    b := 2.0
    result := a * int(b)
    fmt.Printf("%T", result)
}
hard
A. float64
B. string
C. float32
D. int

Solution

  1. Step 1: Analyze variable types and conversion

    a is int, b is float64 (default for 2.0). The expression converts b to int before multiplication.
  2. Step 2: Determine result type

    Multiplying int (a) by int (converted b) results in int type for result.
  3. Final Answer:

    int -> Option D
  4. Quick Check:

    int * int = int type [OK]
Hint: Type conversion affects result type [OK]
Common Mistakes:
  • Assuming result is float64 without conversion
  • Forgetting to convert float to int
  • Confusing multiplication type rules
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