在Go语言中,输入主要是通过标准库中的包来实现的。常用的包有 `fmt` 和 `bufio`。
以下是一些基本的Go输入方法:
1. **使用 `fmt.Scan()` 和相关函数**:
`fmt.Scan()`, `fmt.Scanln()`, 和 `fmt.Scanf()` 是用于从标准输入读取值的常用方法。
```go
package main
import (
"fmt"
)
func main() {
var name string
fmt.Print("Enter your name: ")
fmt.Scanln(&name)
fmt.Printf("Hello, %s!\n", name)
}
```
`fmt.Scanf()` 可以用于格式化的输入:
```go
var age int
fmt.Print("Enter your age: ")
fmt.Scanf("%d", &age)
```
2. **使用 `bufio` 包**:
对于更复杂的输入,例如读取整行,可以使用 `bufio` 包。
```go
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter your full name: ")
name, _ := reader.ReadString('\n')
fmt.Printf("Hello, %s", name)
}
```
使用 `bufio` 可以轻松地读取整行或直到指定的分隔符。
3. **错误处理**:
在上面的例子中,我们忽略了错误(使用 `_`)。但在实际应用中,处理错误是很重要的。
```go
name, err := reader.ReadString('\n')
if err != nil {
fmt.Println("An error occurred:", err)
return
}
```
总之,Go提供了多种方法来从标准输入或其他源读取输入。选择哪种方法取决于你的具体需求。