Bird
Raised Fist0
Goprogramming~10 mins

Module initialization 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 the module path in the go.mod file.

Go
module [1]
Drag options to blanks, or click blank then click option'
Agithub.com/user/project
Bpackage main
Cimport fmt
Dfunc main()
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'package main' instead of the module path.
Writing 'import fmt' in the module declaration.
Putting function code in go.mod file.
2fill in blank
medium

Complete the code to initialize a new Go module using the command line.

Go
go [1] github.com/user/project
Drag options to blanks, or click blank then click option'
Abuild
Brun
Cmod init
Dget
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'go build' instead of 'go mod init'.
Using 'go get' which is for fetching packages.
Typing 'go run' which runs Go programs.
3fill in blank
hard

Fix the error in the go.mod file by completing the missing keyword.

Go
[1] github.com/user/project

go 1.20
Drag options to blanks, or click blank then click option'
Apackage
Bmodule
Cimport
Dfunc
Attempts:
3 left
💡 Hint
Common Mistakes
Writing 'package' instead of 'module' in go.mod.
Using 'import' or 'func' which are Go code keywords, not module keywords.
4fill in blank
hard

Fill both blanks to complete the go.mod file with module path and Go version.

Go
[1] github.com/example/app

go [2]
Drag options to blanks, or click blank then click option'
Amodule
B1.20
C1.18
Dpackage
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'package' instead of 'module'.
Putting an invalid Go version like 'package' or 'module' in the version line.
5fill in blank
hard

Fill all three blanks to create a minimal go.mod file with module path, Go version, and a require statement.

Go
[1] github.com/my/module

go [2]

require [3] v1.2.3
Drag options to blanks, or click blank then click option'
Amodule
B1.20
Cgithub.com/some/dependency
Dpackage
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'package' instead of 'module' for the first blank.
Putting an invalid Go version in the second blank.
Leaving the require dependency blank or using an invalid path.

Practice

(1/5)
1. What is the main purpose of the init function in a Go module?
easy
A. To run setup code automatically before main starts
B. To define the main entry point of the program
C. To declare global variables
D. To handle user input during runtime

Solution

  1. Step 1: Understand the role of init in Go

    The init function is designed to run automatically before the main function starts.
  2. Step 2: Differentiate from other functions

    Unlike main, init is used for setup tasks, not for program entry or input handling.
  3. Final Answer:

    To run setup code automatically before main starts -> Option A
  4. Quick Check:

    init runs before main [OK]
Hint: Remember: init runs before main automatically [OK]
Common Mistakes:
  • Confusing init with main
  • Thinking init handles user input
  • Assuming init must be called manually
2. Which of the following is the correct syntax to declare an init function in Go?
easy
A. init func() {}
B. func init() {}
C. function init() {}
D. func Init() {}

Solution

  1. Step 1: Recall Go function syntax

    In Go, functions start with the keyword func, followed by the function name and parentheses.
  2. Step 2: Check init function naming rules

    The init function must be lowercase and have no parameters or return values.
  3. Final Answer:

    func init() {} -> Option B
  4. Quick Check:

    Correct init syntax = func init() {} [OK]
Hint: Use lowercase init with empty parentheses [OK]
Common Mistakes:
  • Capitalizing Init instead of init
  • Using wrong keywords like function
  • Adding parameters or return types to init
3. What will be the output of this Go program?
package main
import "fmt"
func init() {
    fmt.Println("Init 1")
}
func init() {
    fmt.Println("Init 2")
}
func main() {
    fmt.Println("Main")
}
medium
A. Init 2 Init 1 Main
B. Main Init 1 Init 2
C. Init 1 Init 2 Main
D. Init 1 Main Init 2

Solution

  1. Step 1: Understand multiple init functions execution order

    All init functions run automatically before main, in the order they appear in the source file.
  2. Step 2: Trace the output sequence

    First, "Init 1" prints, then "Init 2", and finally "Main" from the main function.
  3. Final Answer:

    Init 1 Init 2 Main -> Option C
  4. Quick Check:

    Multiple init run in order before main [OK]
Hint: Multiple init run top to bottom before main [OK]
Common Mistakes:
  • Assuming main runs before init
  • Thinking init functions run in random order
  • Confusing output order of init functions
4. Identify the error in this Go code snippet related to init function:
package main
func init() {
    fmt.Println("Starting")
}
func main() {
    fmt.Println("Running")
}
medium
A. main function must be named Main
B. init function cannot print output
C. Multiple init functions are required
D. Missing import of the fmt package

Solution

  1. Step 1: Check for required imports

    The code uses fmt.Println but does not import the fmt package, causing a compile error.
  2. Step 2: Validate other code parts

    init can print output, multiple init are optional, and main must be lowercase.
  3. Final Answer:

    Missing import of the fmt package -> Option D
  4. Quick Check:

    Use import "fmt" to fix [OK]
Hint: Always import packages before using their functions [OK]
Common Mistakes:
  • Forgetting to import fmt
  • Thinking init cannot print
  • Misnaming main function
5. You want to initialize a configuration map before your Go program runs. Which approach correctly uses init to do this?
var config map[string]string

func init() {
    // What should go here?
}
hard
A. config = make(map[string]string) config["env"] = "production"
B. config := map[string]string{"env": "production"}
C. var config = map[string]string{"env": "production"}
D. config = nil

Solution

  1. Step 1: Understand map initialization in init

    The global config variable must be assigned a new map using make before adding keys.
  2. Step 2: Check each option

    config = make(map[string]string) config["env"] = "production" correctly initializes and sets a key. config := map[string]string{"env": "production"} uses := which creates a new local variable, not affecting the global. var config = map[string]string{"env": "production"} declares a local config inside init, not affecting the global. config = nil sets config to nil, which is not useful.
  3. Final Answer:

    config = make(map[string]string) config["env"] = "production" -> Option A
  4. Quick Check:

    Use make to initialize maps before use [OK]
Hint: Use make to initialize maps before adding keys [OK]
Common Mistakes:
  • Using := inside init creates local variable
  • Not initializing map before assignment
  • Setting map to nil instead of a new map
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