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

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  
    }  
}
相关推荐
earthzhang20215 小时前
第3讲:Go垃圾回收机制与性能优化
开发语言·jvm·数据结构·后端·性能优化·golang
apocelipes5 小时前
golang unique包和字符串内部化
java·python·性能优化·golang
驰羽8 小时前
[GO]GORM 常用 Tag 速查手册
开发语言·后端·golang
驰羽13 小时前
[GO]golang接口入门:从一个简单示例看懂接口的多态与实现
开发语言·后端·golang
驰羽19 小时前
[GO]GORM中的Tag映射规则
开发语言·golang
Wenhao.20 小时前
LeetCode 合并K个升序链表
leetcode·链表·golang
道之极万物灭20 小时前
Go基础知识(一)
开发语言·后端·golang
冷冷的菜哥1 天前
go邮件发送——附件与图片显示
开发语言·后端·golang·邮件发送·smtp发送邮件
luckyPian1 天前
学习go语言
开发语言·学习·golang
QX_hao1 天前
【Go】--map和struct数据类型
开发语言·后端·golang