【发布时间】:2018-05-22 02:19:33
【问题描述】:
// Valid checks Config data
func (c *Config) Valid() Error {
// Check mapping.hosts
for _, raw := range c.Mapping.Hosts {
if validIP := utils.ValidIP4(raw.IPAddress); !validIP {
err := new(InvalidIPError)
return err
}
}
return nil
}
// Error represents errors in config
type Error interface {
Error() string
}
// InvalidIPError raises when invalid ip provided
type InvalidIPError struct {
HostRaw HostRaw
}
func (e *InvalidIPError) Error() string {
return fmt.Sprintf("You specified invalid IP: %v", e.HostRaw)
}
如何使用 new 关键字和值创建 InvalidIPError 实例,以便在一行中将其发送到 return?
例如这样的return new(InvalidIPError{HostRaw: raw})
【问题讨论】:
-
你不能使用
new,但你不必使用new。尝试使用Tour of Go。