Oleg
Там в начале телеграм у кого-то пиликал😂😂, гость который не гость:))
Oleg
GolangShow лучше:)
Golang Show
откуда?
Alexey
GolangShow!
Аааа, GolangShow
nikita
В покеткасьте пусто(
Sander
Привет
Sander
что-т туплю не могу просто сохранить информацию в файл
Sander
import ( "html/template" "log" "os" ) var ( newFile *os.File err error ) type Person struct { UserName string } func main() { t := template.New("Generate config file") t, _ = t.Parse("hello {{.UserName}}!") //t, _ = template.ParseFiles("template/welcome.tmpl") p := Person{UserName: "Astaxie"} file, err := os.Create("result.txt") if err != nil { log.Fatal("Cannot create file", err) } t.Execute(os.Stdout, p) file.Close() }
Sander
все что я делаю, создаю шаблон, меняю в нем теги на что-то, и в конце надо сохранить в файл
Alexey
Ошибку Execute стоит проверять
Alexey
да и все остальные
Sander
я на го первый раз пишу
Sander
./test.go:31: cannot use result (type error) as type string in argument to fmt.Fprintf
Sander
writeFile тоже пробовал, такая же пробелма
Sander
просто уже перегуглил и не понимаю
Sander
по ощущениям проблема в result := t.Execute(os.Stdout, p)
Mikalai
Sander
как я этoт t.Execute засуну в writeFile?
Sander
это t.Execute(os.Stdout, p) выводит результат в терминал
Sander
но как мне засунуть в переменную, чтоб я просто смог потом засунуть в writeFile и сохранить
Daniel
или используйте %v вместо %s в формате, или используйте result.Error()
Sander
?
Daniel
ну прочтите сообщение об ошибке уже...
Sander
ошибку я понял
Sander
я давно уже другой вопрос спрашиваю
Daniel
и где же он?
Sander
у меня этот кусок кода - t.Execute(os.Stdout, p) в консоли отдает результат, -- как мне это засунуть в переменную? чтоб я потом смог сделать err := ioutil.WriteFile("test.txt", []byte(result), 0666)
Daniel
впрочем - пофиг
Sander
я описал по пунктам, что код делает, вроде там и так понятно
Daniel
оно явно хочет первым параметром os.File
Daniel
который структура, а не интерфейс
Daniel
так что сделать тут нельзя ничего, коме как пописать в os.file
Sander
tmpl.Execute(os.File, p) ?
Daniel
os.File - это тип
Daniel
вам нужна переменная этого типа
Sander
это я и пытаюсь понят как это сделать
Daniel
чтобы передать ее в этот ваш t.Execute()
Sander
не понимаю почему так сложно просто сохранить файл с данными
Daniel
вы не просто сохранить же хотите, а в переменную
Daniel
нет?
Mike
короч сандер
Sander
я могу сделать lala := "alsala" и сохраниь в файл
Mike
ты хочешь лишнее действие
Daniel
если просто сохранить - func NewFile(fd uintptr, name string) *File func Open(name string) (*File, error) func OpenFile(name string, flag int, perm FileMode) (*File, error)
Mike
ты хочешь сделать переменную, а потом в файл написать
Mike
а у тебя функция сразу в файл пишет
Daniel
если в преременную - func Pipe() (r *File, w *File, err error)
Sander
но так как я перед этим геренирую шаблон, то я не понимаю как из нее получить переменную с результатом
Mike
просто дай ей ан вход файл
Mike
а не stdout
Mike
конец
Sander
чтоб вписать в writeFile
Mike
смотри
Mike
НЕ ПОЛЬЗУЙСЯ writeFile
Mike
ПОЛЬЗУЙСЯ СВОЕЙ СТРОЧКОЙ
Mike
которая в стдаут пишет
Mike
только поменяй стдаут на свой файл
Mike
стдаут — просто файл, что тебе мешает туда другой передать?
Daniel
оно хочет io.Writer
а вот и нет
Daniel
или да?
Mikalai
func (t *Template) Execute(wr io.Writer, data interface{}) error
Daniel
а!
Daniel
тогда все существенно проще, но наш друг сСандер доку не читал
Sander
1) я с самого начало написал что первый раз пишу на го 2) читал но не все подрят, только самое начало то что успел
Mikalai
https://gobyexample.com/writing-files
Sander
это уже видел
Mike
слушай, по твоим вопросам и реакциям такое чувство, что ты мало того, что на го первый раз пишешь, вообще первый раз на чем-то пишешь. ты очень не гибкий в решениях и постоянно грешишь на го, когда ты концептуально что-то не так делаешь
Sander
тяжелый пример
Sander
очень сложно начать кодить, после длительного времени администрирования
Mikalai
За тебя никто тут код писать не будет
Sander
в общем понятно
Sander
посмотрел пример, который вы скинули и проблема не в том что я не могу записать в файл
Sander
проблема в том что, я не понимаю как мне получить результат из этого шаблонизатора, чтоб записать в файл
Mikalai
t.Execute записывает результат в io.Writer