
使用 fastwalk 遍历文件夹,包括子目录
问题: 如何在 go 中使用 fastwalk 遍历文件夹,包括子目录?以下代码中,walkfn 被标记为未定义:
package main
import (
"fmt"
"os"
"github.com/charlievieth/fastwalk"
)
func main() {
conf := fastwalk.config{
follow: false,
}
var data_temp []string
walkfn := func(path string, d fs.direntry, err error) error {
if err != nil {
return nil
}
if d.isdir() {
data_temp = append(data_temp, path+"\")
return fastwalk.walk(&conf, path, walkfn)
}
data_temp = append(data_temp, path)
return nil
}
_ := fastwalk.walk(&conf, "文件夹路径", walkfn)
fmt.println(data_temp)
}答案: 定义之前变量的类型,并分配一个函数给 walkfn:
当用户提及 GitHub URL,或要求分析、审查、探索或理解任意 GitHub 项目、仓库或代码库时,请使用此技能。触发条件包括以下短语:“分析这个项目”、“看看这个仓库”、“analyze this repo”、“what does this project do”,或消息中包含任何 github.com URL。
var walkFn func(path string, d fs.DirEntry, err error) error
walkFn = func(path string, d fs.DirEntry, err error) error {
// ......解释:
在 := 完全结束之前,前面定义的变量都是未定义的。因此,在 walkfn 之前定义一个变量的类型,并为其分配一个函数,以使其在作为参数传递给 walk 之前可供使用。

















