gpt4 book ai didi

go - 无效操作 : currency. Name() == currency(不匹配的类型字符串和 *config.Currency)

转载 作者:IT王子 更新时间:2023-10-29 01:26:11 26 4
gpt4 key购买 nike

我有一个函数,它接受一个字符串,并检查该字符串是否存在于其他字符串列表中。很简单。

func (s *Foo) validateCurrency(currency string) error {
for _, currency := range s.Config.Currencies {
if currency.Name() == currency {
return nil
}
}
return ErrCurrencyNotFound
}

这是 Currency 结构:

type Currency struct {
name string
// ...
}

func (c *Currency) Name() string {
return c.name
}

但我似乎遇到了这个错误:

invalid operation: currency.Name() == currency (mismatched types string and *config.Currency)

到底为什么 Go 编译器对我大喊大叫?我不明白...两者都是字符串。 currency.Name() 返回一个字符串。为什么错误说它返回一个 *config.Currency

最佳答案

您在 for 循环中隐藏了 currency。查看此代码以获得更简单的示例:https://play.golang.org/p/UFmwqQ4JZtG

第一次赋值给currency -> func (s *Foo) validateCurrency(currency string) error {

第二个赋值覆盖第一个赋值:-> for _, currency := range s.Config.Currencies {

更改其中一个变量名称以进行修复。

关于go - 无效操作 : currency. Name() == currency(不匹配的类型字符串和 *config.Currency),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49763593/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com