📌  相关文章
📜  如何了解用户输入 - Go 编程语言(1)

📅  最后修改于: 2023-12-03 14:51:44.440000             🧑  作者: Mango

如何了解用户输入 - Go 编程语言

在 Go 编程语言中,了解用户输入通常涉及到以下三个步骤:

  1. 从标准输入流中获取用户输入。
  2. 对用户输入进行类型转换和解析。
  3. 处理错误和异常情况。
从标准输入流中获取用户输入

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 函数将读取标准输入流并将其转换为整数类型。如果用户输入了负数,则函数将返回一个自定义的异常对象,如果用户输入了无法转换为整数类型的数据,则函数将返回一个自定义的异常对象。