I have a function that takes in a string, and checks to see if that string is present in a list of other strings. Simple enough.
func (s *Foo) validateCurrency(currency string) error {
for _, currency := range s.Config.Currencies {
if currency.Name() == currency {
return nil
}
}
return ErrCurrencyNotFound
}
This is the Currency
struct:
type Currency struct {
name string
// ...
}
func (c *Currency) Name() string {
return c.name
}
Yet I seem to be getting this error:
invalid operation: currency.Name() == currency (mismatched types string and *config.Currency)
Why on earth is the Go compiler yelling at me? I don't get it... both are strings. currency.Name()
returns a string. Why does the error say it returns a *config.Currency
?