Bird
Raised Fist0
Goprogramming~5 mins

Basic input concepts in Go - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What package is commonly used in Go to read input from the user?
The fmt package is commonly used to read input from the user in Go, especially with functions like fmt.Scan and fmt.Scanln.
Click to reveal answer
intermediate
How does fmt.Scanln differ from fmt.Scan in Go?
fmt.Scanln reads input until a newline is encountered, while fmt.Scan reads input separated by spaces and stops at a newline or space.
Click to reveal answer
beginner
Write a simple Go code snippet to read a string input from the user.
```go
package main

import "fmt"

func main() {
    var name string
    fmt.Print("Enter your name: ")
    fmt.Scanln(&name)
    fmt.Println("Hello,", name)
}
```
Click to reveal answer
beginner
Why do we use the ampersand (&) before a variable when reading input in Go?
The ampersand (&) is used to pass the memory address of the variable to the input function, so the function can store the input value directly into that variable.
Click to reveal answer
intermediate
What happens if the user inputs a different data type than expected in Go's fmt.Scanln?
If the input type does not match the variable type, fmt.Scanln will return an error and the variable may not be set correctly.
Click to reveal answer
Which Go function reads input until the user presses Enter?
Afmt.Scanln
Bfmt.Println
Cfmt.Printf
Dfmt.Scanf
What does the & symbol do when used in fmt.Scanln(&variable)?
APrints the variable
BPasses the variable's address to store input
CDeclares a new variable
DConverts variable to string
Which package must be imported to use fmt.Scanln?
Aos
Bio
Cfmt
Dbufio
If you want to read multiple values separated by spaces, which function is suitable?
Afmt.Scanln
Bfmt.Sprintf
Cfmt.Println
Dfmt.Scan
What happens if input type does not match the variable type in fmt.Scanln?
AAn error is returned and variable may not be set
BInput is automatically converted
CProgram crashes immediately
DInput is ignored silently
Explain how to read a string input from the user in Go using fmt.Scanln.
Think about how you ask a friend for their name and store it.
You got /4 concepts.
    Describe why the ampersand (&) is necessary when reading input into a variable in Go.
    Imagine giving someone your mailbox address so they can put a letter inside.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of using input functions in Go programs?
      easy
      A. To get information from the user during program execution
      B. To print messages on the screen
      C. To declare variables
      D. To create new functions

      Solution

      1. Step 1: Understand input function role

        Input functions allow the program to receive data from the user while it runs.
      2. Step 2: Differentiate input from output

        Printing messages is output, not input. Declaring variables or creating functions are unrelated.
      3. Final Answer:

        To get information from the user during program execution -> Option A
      4. Quick Check:

        Input = get user data [OK]
      Hint: Input means getting data from user, not showing it [OK]
      Common Mistakes:
      • Confusing input with output (printing)
      • Thinking input declares variables
      • Mixing input with function creation
      2. Which of the following is the correct way to read a single word input from the user in Go?
      easy
      A. fmt.Println(variable)
      B. fmt.Scanln(&variable)
      C. bufio.NewReader(os.Stdin).ReadString()
      D. var input string

      Solution

      1. Step 1: Identify input reading functions

        fmt.Scanln reads a single word or token from user input into a variable.
      2. Step 2: Eliminate other options

        fmt.Println prints output, bufio.NewReader reads full lines, and declaring a variable alone doesn't read input.
      3. Final Answer:

        fmt.Scanln(&variable) -> Option B
      4. Quick Check:

        Single word input uses fmt.Scanln [OK]
      Hint: Use fmt.Scanln for simple word input [OK]
      Common Mistakes:
      • Using fmt.Println to read input
      • Confusing bufio.NewReader with Scanln for single words
      • Forgetting to pass variable address with &
      3. What will be the output of this Go code snippet?
      var name string
      fmt.Print("Enter name: ")
      fmt.Scanln(&name)
      fmt.Println("Hello,", name)
      If the user types: John and presses Enter.
      medium
      A. Hello,
      B. Error: missing input
      C. Enter name: John
      D. Hello, John

      Solution

      1. Step 1: Understand input reading

        fmt.Scanln reads the word 'John' into variable name.
      2. Step 2: Understand output printing

        fmt.Println prints "Hello," followed by the value of name, which is "John".
      3. Final Answer:

        Hello, John -> Option D
      4. Quick Check:

        Input 'John' prints 'Hello, John' [OK]
      Hint: Scanln reads input; println shows it back [OK]
      Common Mistakes:
      • Expecting input prompt to print again
      • Thinking Scanln reads empty string
      • Confusing output with input prompt
      4. What is wrong with this Go code for reading a full line input?
      var input string
      reader := bufio.NewReader(os.Stdin)
      input, _ = reader.ReadString('\n')
      fmt.Println(input)
      medium
      A. It does not import the bufio and os packages
      B. ReadString does not read until newline
      C. input variable is declared twice causing error
      D. fmt.Println cannot print strings

      Solution

      1. Step 1: Check package imports

        bufio and os packages must be imported to use bufio.NewReader and os.Stdin.
      2. Step 2: Verify variable declaration

        input is declared once and assigned, which is correct. ReadString reads until newline correctly. fmt.Println can print strings.
      3. Final Answer:

        It does not import the bufio and os packages -> Option A
      4. Quick Check:

        Missing imports cause errors [OK]
      Hint: Always import bufio and os for buffered input [OK]
      Common Mistakes:
      • Forgetting to import required packages
      • Redeclaring variables with := after declaration
      • Assuming ReadString reads partial input
      5. You want to read a user's full name including spaces in Go. Which approach correctly reads and cleans the input to remove the trailing newline?
      hard
      A. Use fmt.Println to read input
      B. Use fmt.Scanln(&name) only
      C. Use bufio.NewReader(os.Stdin).ReadString('\n') and strings.TrimSpace()
      D. Use fmt.Scanf("%s", &name)

      Solution

      1. Step 1: Identify method for full line input

        bufio.NewReader with ReadString('\n') reads the entire line including spaces.
      2. Step 2: Remove trailing newline

        strings.TrimSpace removes extra spaces and newline characters from input.
      3. Final Answer:

        Use bufio.NewReader(os.Stdin).ReadString('\n') and strings.TrimSpace() -> Option C
      4. Quick Check:

        Full line input + trim newline = Use bufio.NewReader(os.Stdin).ReadString('\n') and strings.TrimSpace() [OK]
      Hint: Use bufio + TrimSpace for full line input [OK]
      Common Mistakes:
      • Using Scanln which stops at space
      • Using Scanf with %s reads only one word
      • Trying to read input with Println
      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