package main import ( "fmt" "io" "os" ) func main() { s := parseSettings() var processor func(*settings, io.Writer) error switch s.OM { case outputpng: processor = createBarnsleyFernPng case outputvideo: processor = createBarnsLeyFernVideo default: fmt.Println("неизвестный тип вывода:", s.OM) return } file, err := os.Create(s.Fname) if err != nil { fmt.Println("ошибка открытия файла", err) return } defer func() { if err := file.Close(); err != nil { fmt.Println("ошибка закрытия файла", err) } }() if err := processor(s, file); err != nil { fmt.Println("ошибка создания объекта:", err) return } fmt.Println("done...") }