Go dilində faylları kopyalamaq üçün kitabxana üçün ictimai interfeys (API) dizayn edin — funksiyalar və tiplər başlıqları, proqramçılar üçün mümkün qədər rahat.
sobes.tech Süni İntellekt
AI-dan cavab
go package filecopy
import "io"
// CopyFile src-dən dst-yə fayl kopyalayır. // Əgər dst mövcud deyilsə, yeni fayl yaradılır. // Kopyalanan baytların sayı və baş verən xəta geri qaytarılır. func CopyFile(srcPath, dstPath string) (int64, error)
// CopyFileWithOptions əlavə seçimlərlə fayl kopyalayır. // Məsələn, tamponu göstərə bilər, faylı üst-üstə yazıb-yazmamağı, icazələri kopyalamağı və s. təyin edə bilərsiniz. type CopyOptions struct { Overwrite bool // fayl mövcuddursa, üst-üstə yazmaq BufferSize int // kopyalama üçün tampon ölçüsü, 0 — standart dəyərdən istifadə PreservePermissions bool // icazələri kopyala }
func CopyFileWithOptions(srcPath, dstPath string, opts CopyOptions) (int64, error)
// Copy, io.Reader-dan io.Writer-ə məlumatları seçimlərlə kopyalayır. // Yalnız faylları deyil, hər hansı məlumat axınlarını da kopyalamağa imkan verir. func Copy(dst io.Writer, src io.Reader, opts CopyOptions) (int64, error)
Bu interfeys rahatdır, çünki:
- Əsas fayl kopyalama üçün sadə CopyFile metodu mövcuddur.
- Daha incə tənzimləmə üçün seçimlərlə genişləndirilmiş metod var.
- Axınlar üçün ümumi Copy mövcuddur, bu da elastikliyi artırır.
- Anlaşılan tiplər və adlar istifadə olunur, Go tərzinə uyğundur.