开放的编程资料库

当前位置:我爱分享网 > Go教程 > 正文

去扫描

Go扫描教程展示了如何使用扫描函数在Golang中读取标准输入。扫描函数位于fmt包中。

$ go version
go version go1.18.1 linux/amd64

我们使用Go版本1.18。

扫描功能

共有三个扫描函数:scanscanlnscanf

func Scan(a ...any) (n int, err error)

scan函数扫描从标准输入读取的文本,并将连续的空格分隔值存储到给定的参数中。换行符算作空格。这意味着我们可以在按下Enter后继续写入输入参数。

func Scanln(a ...any) (n int, err error)

Scanln与Scan类似,但在换行处停止扫描。在最后一项之后必须有换行符或EOF。

func Scanf(format string, a ...any) (n int, err error)

Scanf函数从标准输入读取并将连续的空格分隔值存储到给定的参数中,由字符串格式确定。它返回成功扫描的项目数。该功能允许更复杂的扫描。

去扫描

在第一个例子中,我们使用了Scan函数。

package main

import (
    "fmt"
    "log"
)

func main() {

    var name string

    fmt.Print("Enter your name: ")

    _, err := fmt.Scan(&name)

    if err != nil {
        log.Fatal(err)
    }

    fmt.Printf("Hello %s!\n", name)
}

该示例读取用户的输入,构建消息并将其打印到控制台。

$ go run main.go
Enter your name: Peter
Hello Peter!
package main

import (
    "fmt"
    "log"
)

func main() {
    var name string
    var age int

    fmt.Print("Enter your name and age: ")

    n, err := fmt.Scan(&name, &age)

    if err != nil {
        log.Fatal(err)
    }

    fmt.Printf("scanned %d arguments\n", n)
    fmt.Printf("%s is %d years old\n", name, age)
}

我们扫描两个参数。我们打印扫描参数的数量和从这两个参数构建的消息。

$ go run main.go
Enter your name and age: Peter 23
scanned 2 arguments
Peter is 23 years old

去扫描

使用Scanln,换行符终止扫描过程。

package main

import (
    "fmt"
    "log"
)

func main() {

    var name1 string
    var name2 string
    var name3 string

    fmt.Print("Enter three names: ")

    _, err := fmt.Scanln(&name1, &name2, &name3)

    if err != nil {
        log.Fatal(err)
    }

    fmt.Printf("Entered names: %s, %s, %s\n", name1, name2, name3)
}

我们使用Scanln函数来读取三个名字。

去扫描

Scanf函数支持更高级的扫描。

package main

import (
    "fmt"
    "log"
)

func main() {

    var n1, n2, n3, n4, n5 int

    fmt.Print("Enter five numbers separated by comma and space: ")

    _, err := fmt.Scanf("%d, %d, %d, %d, %d", &n1, &n2, &n3, &n4, &n5)

    if err != nil {
        log.Fatal(err)
    }

    sum := n1 + n2 + n3 + n4 + n5

    fmt.Printf("The sum of five numbers is: %d\n", sum)
}

在这个例子中,我们读取了五个数字。数字必须用逗号和空格字符分隔。

$ go run main.go
Enter five numbers separated by comma and space: 1, 2, 3, 4, 5
The sum of five numbers is: 15

在本教程中,我们使用了Golang中的扫描函数。

列出所有Go教程。

未经允许不得转载:我爱分享网 » 去扫描

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏