一个框架和处理逻辑解耦的例子,我们应该学习这种模式

filepath.WalkDir() 是 Go 语言标准库中 path/filepath 包提供的一个函数,用于遍历指定目录下的所有文件和子目录。

使用到了回调函数。WalkDir()里面使用到了递归调用。

filepath.WalkDir() 通过回调函数将具体执行逻辑与遍历过程本身解耦,使得开发者可以在回调函数中实现自定义的逻辑,如过滤特定类型的文件、处理文件内容等。

要实现框架和处理逻辑解耦,可以使用回调函数。

go 复制代码
package main  
  
import (  
    "fmt"  
    "io/fs"  
    "path/filepath"  
)  
  
func visit(path string, d fs.DirEntry, err error) error {  
    if err != nil {  
        return err // 如果有错误发生,返回错误  
    }  
    fmt.Println(path) // 打印当前遍历到的目录或文件的路径  
    return nil  
}  
  
func main() {  
    root := "./" // 指定要遍历的根目录  
    err := filepath.WalkDir(root, visit)  
    if err != nil {  
        fmt.Println("error walking the path:", err)  
        return  
    }  
}
相关推荐
花酒锄作田8 天前
Gin 框架中的规范响应格式设计与实现
golang·gin
qwfys2009 天前
How to install golang 1.26.0 to Ubuntu 24.04
ubuntu·golang·install
codeejun9 天前
每日一Go-25、Go语言进阶:深入并发模式1
开发语言·后端·golang
石牌桥网管9 天前
Go 泛型(Generics)
服务器·开发语言·golang
小二·9 天前
Go 语言系统编程与云原生开发实战(第21篇)
开发语言·云原生·golang
小二·9 天前
Go 语言系统编程与云原生开发实战(第20篇)
开发语言·云原生·golang
女王大人万岁9 天前
Golang实战Eclipse Paho MQTT库:MQTT通信全解析
服务器·开发语言·后端·golang
codeejun9 天前
每日一Go-24、Go语言实战-综合项目:规划与搭建
开发语言·后端·golang
石牌桥网管9 天前
Go类型断言
开发语言·后端·golang
普通网友9 天前
PHP语言的正则表达式
开发语言·后端·golang