Руководство для начинающих по пользовательскому вводу в Go: изучение fmt.Scan()

  1. Использование fmt.Scan() для чтения отдельных значений:
    Функция fmt.Scan() считывает вводимые пользователем данные со стандартного ввода (обычно с клавиатуры) и присваивает введенное значение указанной переменной. Давайте рассмотрим пример, в котором мы хотим прочитать одно целое число от пользователя:
package main
import "fmt"
func main() {
    var num int
    fmt.Print("Enter a number: ")
    fmt.Scan(&num)
    fmt.Println("You entered:", num)
}
  1. Чтение нескольких значений с помощью fmt.Scan():
    Иногда вам может потребоваться прочитать несколько значений от пользователя в одной строке. Этого можно добиться, используя несколько переменных в функции fmt.Scan(). Вот пример, который считывает два целых числа от пользователя:
package main
import "fmt"
func main() {
    var num1, num2 int
    fmt.Print("Enter two numbers: ")
    fmt.Scan(&num1, &num2)
    fmt.Println("You entered:", num1, "and", num2)
}
  1. Обработка различных типов данных:
    fmt.Scan() может обрабатывать различные типы данных, такие как строки, числа с плавающей запятой и даже логические значения. Обязательно используйте правильные типы переменных при сканировании входных данных. Вот пример, который считывает строку и число с плавающей запятой от пользователя:
package main
import "fmt"
func main() {
    var name string
    var weight float64
    fmt.Print("Enter your name: ")
    fmt.Scan(&name)
    fmt.Print("Enter your weight: ")
    fmt.Scan(&weight)
    fmt.Println("Name:", name)
    fmt.Println("Weight:", weight)
}
  1. Обработка ошибок с помощью fmt.Scan():
    Иногда ввод пользователя может быть неожиданным или недействительным. Чтобы справиться с такими ситуациями, вы можете проверить возвращаемое значение fmt.Scan(), чтобы определить, был ли вход успешно прочитан. В случае возникновения ошибки вы можете предпринять соответствующие действия. Вот пример, демонстрирующий обработку ошибок:
package main
import (
    "fmt"
    "strconv"
)
func main() {
    var age int
    fmt.Print("Enter your age: ")
    _, err := fmt.Scan(&age)
    if err != nil {
        fmt.Println("Invalid input:", err)
    } else {
        fmt.Println("Age:", age)
    }
}

В этой статье мы рассмотрели функцию fmt.Scan() в Go и обсудили различные методы обработки пользовательского ввода. Мы рассмотрели чтение одного и нескольких значений, обработку различных типов данных и устранение ошибок. Используя fmt.Scan() и приведенные примеры, вы можете легко включить пользовательский ввод в свои приложения Go. Не забывайте проверять и очищать вводимые пользователем данные, чтобы обеспечить надежность и безопасность вашего программного обеспечения.