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

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  
    }  
}
相关推荐
半桶水专家42 分钟前
go语言中的结构体嵌入详解
开发语言·后端·golang
李迟5 小时前
Golang实践录:使用sqlx操作sqlite3数据库
数据库·golang·sqlite
007php00710 小时前
Git 操作偏门指南:常用和隐藏命令与问题解决
java·git·面试·职场和发展·golang·jenkins·php
源代码•宸11 小时前
goframe框架签到系统项目开发(每日签到添加积分和积分记录、获取当月最大连续签到天数、发放连续签到奖励积分、实现签到日历详情接口)
数据库·经验分享·redis·中间件·golang·dao·goframe
梦想的旅途211 小时前
企业微信外部群消息推送实战指南
java·golang·企业微信
古城小栈11 小时前
go-zero 从入门到实战 全指南(包的)
开发语言·后端·golang
Clarence Liu12 小时前
用 Go 从 100 亿个数中找到最小的 100 个数 —— 实战与原理
开发语言·后端·golang
007php00715 小时前
通过程序对接地图api展示旅游数据列表
java·数据库·面试·职场和发展·golang·php·旅游
L Jiawen17 小时前
【Go · Gin】基础知识
开发语言·golang·gin
wadesir1 天前
Go语言中高效读取数据(详解io包的ReadAll函数用法)
开发语言·后端·golang