))
есть тип 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))
Обсуждают сегодня