Zero value нельзя отличить от «поле не заполнили». В конфиге «Полки» таймаут не задан — выразите это nil-указателем. Реализуйте timeout: верните значение поля, либо 10 секунд по умолчанию, если поле равно nil.
- Задача
- Решение
- Обсуждение
Timeout: nil-указатель как «не задано»
GolangРешение
func timeout(c Config) time.Duration {
if c.Timeout == nil {
return 10 * time.Second
}
return *c.Timeout
}