Go 中的模擬/抽象檔案系統
要求:
目標是監視所有檔案系統讀取取並寫入Go應用程序,並可能用記憶體中的檔案系統替換實體檔案系統
解決方案:
Go 的創建者Andrew Gerrand 提供了一個簡單而有效的解決方案:
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) }
要使用此解決方案:
您的應用程式程式碼應該使用 fs 變數作為檔案系統接口,而不是直接使用 os 套件。這使您可以根據需要輕鬆模擬或替換檔案系統。
以上是如何模擬或抽象 Go 中的檔案系統以實現測試和靈活性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!