))
                  
                  
                  
                  
                  
                  есть тип model.Duration (в прометее)
                  
                  
                  объявлен как 
                  
                  
                  type Duration time.Duration
                  
                  
                  
                  
                  
                  использую kingpin. для задания Duration, типа
                  
                  
                  
                  
                  
                  type config struct {
                  
                  
                    timeout time.Duration
                  
                  
                  }
                  
                  
                  cfg := config{}
                  
                  
                  a := kingpin.New(..
                  
                  
                  a.Flag("send-timeout, "Timeout").Default("30s").DurationVar(&cfg.timeout)
                  
                  
                  
                  
                  
                  дальше, есть структура, которая принимает  поле типа *model.Duration
                  
                  
                  а-ля
                  
                  
                  type any struct{
                  
                  
                    field *model.Duration
                  
                  
                  }
                  
                  
                  
                  
                  
                  мне нужно создать экземпляр этой структуры
                  
                  
                   var a any = any{field: &cfg.timeout}
                  
                  
                  но это не компилится , т.к. тип cfg.timeout - не model.Duration, а time.Duration
                  
                  
                  
                  
                  
                  через вторую переменную
                  
                  
                  var t model.Duration = model.Duration(cfg.timeout)
                  
                  
                  var a any = any{field: &t}
                  
                  
                  cfg.timeout = time.Duration(t)
                  
                  
                  конечно, работает, но это криво
                  
                  
                  как мне правильно сделать, что-то вроде приведения типов на лету?
                  
                  
                  any{field: &(model.Duration(cfg.timeout))
                  
                  
                   - это не работает
                  
                  
                
https://play.golang.org/p/IrzIqEb_Xq9
чёрт! точно! спасибо! вот так оно работает: any{field: (*model.Duration)(&cfg.timeout))
Обсуждают сегодня