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

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  
    }  
}
相关推荐
有代理ip1 天前
Python 与 Golang 爬虫的隐藏优势
爬虫·python·golang
天远云服1 天前
天远车辆过户查询API微服务实战:用Go语言构建高性能车况溯源系统
大数据·微服务·架构·golang
女王大人万岁1 天前
Go标准库 sync 详解
服务器·开发语言·后端·golang
小高Baby@1 天前
session、cookie、Jwt-token
开发语言·后端·golang
Grassto1 天前
12 go.sum 是如何保证依赖安全的?校验机制源码解析
安全·golang·go·哈希算法·go module
小二·1 天前
Go 语言系统编程与云原生开发实战(第12篇)云原生部署实战:Helm Chart × GitOps × 多环境管理(生产级落地)
开发语言·云原生·golang
天空属于哈夫克31 天前
Go 语言实战:构建一个企微外部群“技术贴收藏夹”小程序后端
小程序·golang·企业微信
小二·1 天前
Go 语言系统编程与云原生开发实战(第13篇)工程效能实战:Monorepo × 依赖治理 × 构建加速(10万行代码实测)
开发语言·云原生·golang
暴躁小师兄数据学院1 天前
【WEB3.0零基础转行笔记】Golang编程篇-第4讲:Go语言中的流程控制
开发语言·后端·golang·web3·区块链
lingggggaaaa2 天前
安全工具篇&Go魔改二开&Fscan扫描&FRP代理&特征消除&新增扩展&打乱HASH
学习·安全·web安全·网络安全·golang·哈希算法