我希望能够将go应用程序发出的每次写入/读取记录到底层操作系统,并且(如果可能)将FS完全替换为仅驻留在内存中的FS。
可能吗?怎么样?也许有一个现成的解决方案?
这直接是您(可能)不了解Go的 Andrew Gerrand的10件事:
var fs fileSystem = osFS{} type fileSystem interface { Open(name string) (file, error) Stat(name string) (os.FileInfo, error) } type file interface { io.Closer io.Reader io.ReaderAt io.Seeker Stat() (os.FileInfo, error) } // osFS implements fileSystem using the local disk. type osFS struct{} func (osFS) Open(name string) (file, error) { return os.Open(name) } func (osFS) Stat(name string) (os.FileInfo, error) { return os.Stat(name) }
为此,您需要编写代码以接受fileSystem参数(也许将其嵌入其他类型,或者nil表示默认文件系统)。
fileSystem
nil