使用值创建struct的实例

时间:2018-05-21 18:12:40

标签: go struct

// 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})

这样的东西

1 个答案:

答案 0 :(得分:-1)

return &InvalidIPError{HostRaw: raw}