- Использование 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)
}
- Чтение нескольких значений с помощью 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)
}
- Обработка различных типов данных:
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)
}
- Обработка ошибок с помощью 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. Не забывайте проверять и очищать вводимые пользователем данные, чтобы обеспечить надежность и безопасность вашего программного обеспечения.