📅  最后修改于: 2023-12-03 14:51:44.440000             🧑  作者: Mango
在 Go 编程语言中,了解用户输入通常涉及到以下三个步骤:
Go 编程语言中可以使用 bufio
包提供的 NewScanner
函数来获取标准输入流并对其进行扫描。
import "bufio"
import "os"
scanner := bufio.NewScanner(os.Stdin)
fmt.Print("Enter your name: ")
scanner.Scan()
name := scanner.Text()
fmt.Println("Hello, " + name)
在上面的代码片段中,scanner.Scan()
函数将等待用户输入。一旦用户输入完成后,scanner.Text()
函数将返回用户输入的字符串。
在处理用户输入时,需要考虑到用户可能会输入无效的数据,因此必须对其进行类型转换和解析。
import "strconv"
fmt.Print("Enter your age: ")
scanner.Scan()
ageStr := scanner.Text()
age, err := strconv.Atoi(ageStr)
if err != nil {
fmt.Println("Invalid input")
} else {
fmt.Printf("You are %d years old\n", age)
}
在上面的代码片段中,strconv.Atoi
函数将用户输入的字符串转换为整数类型。如果字符串无法转换为整数类型,则 err
变量将不为空。在这种情况下,程序将输出 "Invalid input"。
在处理用户输入时,必须考虑到用户可能会输入无效的数据,例如非法字符、负数或过大的数字等。因此,在解析用户输入时需要进行异常检查和错误处理。
import "errors"
func readInt() (int, error) {
scanner.Scan()
str := scanner.Text()
if str[0] == '-' {
return 0, errors.New("Negative numbers not allowed")
}
x, err := strconv.Atoi(str)
if err != nil {
return 0, errors.New("Invalid input")
}
return x, nil
}
在上面的代码片段中,readInt
函数将读取标准输入流并将其转换为整数类型。如果用户输入了负数,则函数将返回一个自定义的异常对象,如果用户输入了无法转换为整数类型的数据,则函数将返回一个自定义的异常对象。