成都自然排名优化seo优化方式
成都自然排名优化,seo优化方式,邢台163手机端,wordpress启用GZIP压缩golang的fs除了定权限还能干什么#xff1f;
golang 中文件 | Golang 中文学习文档详细学习文档#xff01;
搞懂 fs 包的核心 ——fs.FS 接口
fs.FS (接口) #xff1a;这是一个“文件系统”的抽象。它只有一个方法 Open(name string)。
type FS interface {// 打开一个…golang的fs除了定权限还能干什么golang 中文件 | Golang 中文学习文档详细学习文档搞懂fs包的核心 ——fs.FS接口fs.FS(接口)这是一个“文件系统”的抽象。它只有一个方法Open(name string)。typeFSinterface{// 打开一个文件返回 fs.File 接口又是一个规则Open(namestring)(File,error)}只要某个类型实现了Open()方法返回fs.File接口它就是一个 “合法的fs”能被fs包的所有工具函数操作。读取磁盘上的文件传统方式os.ReadFilepackage main import ( fmt os ) func main() { // 直接操作硬盘 data, _ : os.ReadFile(config.txt) fmt.Println(string(data)) }fs模块现代方式更灵活现在我们把硬盘路径包装成一个fs.FS对象。这样你的函数以后可以接收任何来源的文件。package main import ( fmt io/fs os ) // 这个函数不关心文件在哪它只认 fs.FS 接口 func readMyConfig(fsys fs.FS) { data, err : fs.ReadFile(fsys, config.txt) if err ! nil { fmt.Println(读取失败:, err) return } fmt.Println(配置内容:, string(data)) } func main() { // 1. 将当前目录 (.) 包装成一个文件系统对象 dirFS : os.DirFS(.) // 2. 传给通用函数 readMyConfig(dirFS) }fs包常用的工具函数fs包提供了一批 “通用工具函数”和io包的工具函数类似都是基于fs.FS接口实现的函数作用通俗理解fs.ReadFile(fsys, name)读取文件全部内容等同于io.ReadAll但针对fs.FSfs.WalkDir(fsys, root, fn)遍历目录下所有文件 / 子目录通用版的 “遍历目录”fs.Stat(fsys, name)获取文件信息大小、是否是目录等同于os.Stat但针对fs.FSfs.Glob(fsys, pattern)按通配符匹配文件如*.txt找符合规则的文件示例用fs.WalkDir遍历目录packagemainimport(fmtio/fsos)funcmain(){// 1. 把本地目录转成 fs.FSlocalFS:os.DirFS(.)// 2. 遍历当前目录下所有文件/目录err:fs.WalkDir(localFS,.,func(pathstring,d fs.DirEntry,errerror)error{iferr!nil{returnerr}// d.IsDir()判断是不是目录通用规则fmt.Printf(路径%s | 是目录%t\n,path,d.IsDir())returnnil})iferr!nil{fmt.Println(遍历失败,err)}}fs模块真正的威力go:embed这是fs最常用的场景。package main import ( embed fmt io/fs ) var embededFiles embed.FS func main() { // 即使你把编译好的程序拷到没有 hello.txt 的机器上它也能运行 // 因为文件已经“嵌入”在程序里了 content, _ : fs.ReadFile(embededFiles, hello.txt) fmt.Println(string(content)) }可以把静态文件如图片、SQL、配置直接编译进你的二进制程序里然后像操作文件一样操作它们。packagemainimport(embedfmtio/fs)// 关键用 //go:embed 指令把 static 目录下的所有文件嵌入程序//go:embed static/*varembeddedFS embed.FS// embed.FS 实现了 fs.FS 接口funcmain(){// 用 fs 包的通用函数读取嵌入的文件data,err:fs.ReadFile(embeddedFS,static/index.html)iferr!nil{fmt.Println(读取嵌入文件失败,err)return}fmt.Println(嵌入的 index.html 内容,string(data))}把前端静态文件HTML/CSS/JS嵌入到 Go 程序里打包后只有一个二进制文件部署超方便。一句话区分os/io/fsos操作本地文件的具体实现io定义读写数据的通用接口fs定义操作文件系统的通用接口。