2 回答
TA贡献1847条经验 获得超7个赞
将 Map 传递给返回 a 的函数,filepath.WalkFunc然后将其传递给filepath.Walk. 它是一个类似构造函数的东西。
func visit(map Map) filepath.WalkFunc {
return func(path string, f os.FileInfo, err error) error {
// do something with map
fileName := f.Name()
if !f.IsDir() && strings.Contains(strings.ToLower(fileName), "myfile") {
df := parseFile(path)
fmt.Printf("Visited: %s [%x], %s, %s\n", df.FilePath)
}
return nil
}
}
func WalkDir(path string) {
err := filepath.Walk(path, visit(map))
fmt.Printf("filepath.Walk() returned %v\n", err)
}
TA贡献1793条经验 获得超6个赞
你可以写
func (map Map) visit(path string, f os.FileInfo, err error) error {
...//Do something with map
}
var mymap Map
err := filepath.Walk(path, mymap.visit) //mymap.visit express 'func(path string, f os.FileInfo, err error) error' same as visit just with mymap evaluated
这叫做方法值
- 2 回答
- 0 关注
- 194 浏览
添加回答
举报