报错invalid operation: operator - not defined on frozenAmount(variable of type decimal.Decimal)
时间: 2024-04-15 21:28:56 浏览: 101
如果 `frozenAmount` 是类型为 `decimal.Decimal` 的变量,而不支持减法操作符 `-`,您可以使用 `frozenAmount.Neg()` 方法来实现减法的效果。下面是相应的修改后的代码:
```go
cacheKey := r.CacheKey(req.Id)
err = r.data.setCache(ctx, cacheKey, result)
if err != nil {
_ = tx.Rollback()
return nil, biz.ErrRecordAlreadyExists
}
// 冻结金额减少的情况
minusFrozenAmount := frozenAmount.Neg()
err = r.data.rpushCache(ctx, cacheKey, minusFrozenAmount)
if err != nil {
_ = tx.Rollback()
return nil, err
}
// 错误金额增加的情况
err = r.data.rpushCache(ctx, cacheKey, incorrectAmount)
if err != nil {
_ = tx.Rollback()
return nil, err
}
```
请确保您的代码中正确导入了 `decimal` 包,并使用了正确的方法名称 `Neg()`。这样,您就可以使用 `frozenAmount.Neg()` 来获取 `frozenAmount` 的相反数,并将其推入缓存中。
阅读全文