go - filepath.Walk() 返回 0xc08402f180

标签 go goroutine

我是 Go 语言新手,正在尝试学习。

我编写了一个程序来遍历目录。它工作得很好,但是当我尝试在 go 例程中运行该程序时,它返回:

filepath.Walk() returned 0xc08402f180

我的功能是这样的:

func LoadData(root string) {
    runtime.GOMAXPROCS(runtime.NumCPU())
    c := make(chan error)
    go func() {c<-filepath.Walk(root, WalkFunc)}()
    if erw := c; erw != nil {
        fmt.Printf("filepath.Walk() returned %v\n", erw)
    // log.Fatal(erw)
    }
}

如何解决这个问题?

谢谢。

最佳答案

您正在打印 channel ,而不是 channel 的返回。试试这个

if erw := <-c; erw != nil {
    fmt.Printf("filepath.Walk() returned %v\n", erw)
//  log.Fatal(erw)
}

关于go - filepath.Walk() 返回 0xc08402f180,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22130672/

相关文章:

go - 连接到远程 golang 服务器

go - 由于 goroutine,main 即将退出

multithreading - 与超时并行运行循环

python - 根据相似度最高的值对字典列表进行排序

bash - 将 shell 输出绑定(bind)到 Go 中的结构的最佳方法?

go - 使用 go.crypto/openpgp 验证签名

concurrency - Enque 和 deque 使 channel 死锁

go - 有 time.Sleep() 的无限循环与没有 time.Sleep() 的无限循环

go - 读取子进程的 stdout 和 stderr 的竞争条件

sockets - 如何读取在 Golang 中接收到的 UDP 数据报的输入接口(interface)和远程套接字地址?