Here is the problem that scared me right now. When I get input from a user, I want to use a loop to ask the user to try again until they enter the correct input:
package main
import (
"fmt"
)
func main() {
fmt.Println("Please enter an integer: ")
var userI int
for {
_, err := fmt.Scanf("%d", &userI)
if err == nil {
break
}
fmt.Println("Sorry, invalid input. Please enter an integer: ")
}
fmt.Println(userI)
}
Running above, if the user enters the correct input, there is no problem:
Enter an integer:
3
3
exit code 0, the process ends normally.
But try entering a string instead?
Enter an integer:
what?
Sorry, invalid input. Enter an integer:
Sorry, invalid input. Enter an integer:
Sorry ...
Etc, , .
, , .
, Stdin Go?
P.S. , , ? ...