Go: invalid operation - type *map[key]value does not support indexing

package main

import "fmt"

type Currency string

type Amount struct {
    Currency Currency
    Value float32
}

type Balance map[Currency]float32

func (b *Balance) Add(amount Amount) *Balance {
    current, ok := (*b)[amount.Currency]
    if ok {
        (*b)[amount.Currency] = current + amount.Value
    } else {
        (*b)[amount.Currency] = amount.Value
    }
    return b
}

func main() {
    b := &Balance{Currency("USD"): 100.0}
    b = b.Add(Amount{Currency: Currency("USD"), Value: 5.0})

    fmt.Println("Balance: ", (*b))
}

  

原文地址:https://www.cnblogs.com/allenhaozi/p/8576228.html

时间: 2024-10-28 13:28:29

Go: invalid operation - type *map[key]value does not support indexing的相关文章

Redis报错:WRONGTYPE Operation against a key holding the wrong kind of value 解决处理

首先应该明白报这个错误说明了你用的jedis方法与redis服务器中存储数据的类型存在冲突. 例如:数据库中有一个key的数据存储的是Hash类型的,但是你使用jedis执行数据操作的时候却使用了非Hash的操作方法.此时就会报 WRONGTYPE Operation against a key holding the wrong kind of value这个错误! 问题解决: 先执行一条如下命令: redis 127.0.0.1:6379>type key 此时会显示出该key存储在现在re

微信公众号接口添加菜单时错误(errcode":40017 invalid button type)

POST提交时总是报错: {"errcode":40017,"errmsg":"invalid button type"} 最后查出来是由于数据中有中文引起的 解决: data = {"button":[ {"name": u"会员服务", "sub_button":[ {"type":"click","name&qu

{"errcode":40017,"errmsg":"invalid button type hint: [I8nq_a0783sha1]"}

在开发微信公众号 添加菜单时遇到问题 一直提示:{"errcode":40017,"errmsg":"invalid button type hint: [I8nq_a0783sha1]"} 原因是:各个Button类中,属性type没有对应getType()方法,导致在生成的json字符串中就没有type {"button":[{"name":"点击","key":

Map<Key,Value>基于Value值排序

Map<Key,Value> 排序默认是按照KEY值的升序来进行. 针对按照Value来进行排序有两种方法: 第一种 使用TreeMap  代码如下 public class test{ public static void main(String[] args) { HashMap<String, Double> map = new HashMap<String, Double>(); valueComparator vComparator = new valueCo

升级AutoMapper后遇到的“Missing map”与“Missing type map configuration or unsupported mapping”问题

前几天发现 AutoMapper 3.3 的一个性能问题(详见:遭遇AutoMapper性能问题:映射200条数据比100条慢了近千倍),于是将 AutoMapper 升级至最新的 5.1.1 看是否也存在这个性能问题. 升级中想当然地将之前的map配置代码: Mapper.CreateMap<AEntity, ADto>(); Mapper.CreateMap<BEntity, BDto>(); 改为: Mapper.Initialize(cfg => cfg.Create

发生了Post错误:错误代码40005,微信返回错误信息:invalid file type

给客户部署 PxxCms, 使用群发功能发送图文的的时候提示: 发生了Post错误:错误代码40005,微信返回错误信息:invalid file type, 没学过php伤不起 ... Google 到某哥的博客, 有解决方案, 但是tmd 收费...擦了, 自己改 找到 \PigCms\Lib\Action\User\MessageAction.class.php 的 sendAll 方法, 大约112 行, 改成如下,注释掉第一行file_put_contents(...); //file

WRONGTYPE Operation against a key holding the wrong kind of value:类型搞混弄出的错误

今天用C# 连接Redis做性能测试,用的接口是StackExchange.Redis,按照正常的思路获取数据库连接,代码如下: 1 string conn = "我的ip:6379,password=登录密码"; 2 3 ConnectionMultiplexer client = ConnectionMultiplexer.Connect(conn); 4 5 IDatabase db = client.GetDatabase(2); 然后就向里边添加数据,类似的代码如下: 1 R

POST提交时总是报错: {&quot;errcode&quot;:40017,&quot;errmsg&quot;:&quot;invalid button type&quot;} 解决办法

开发语言:java 开发内容:微信公众号 自定义菜单 开发该连接的项目:点击打开链接 http://blog.csdn.net/blognkliming/article/details/16803093 执行MenuManage.java时报错: POST提交时总是报错:  {"errcode":40017,"errmsg":"invalid button type"} 网上找了很多资料,都没有解决问题.最后,在查看代码时发现,MenuManag

redis 报Operation against a key holding the wrong kind of value警告的解决方法

WRONGTYPE Operation against a key holding the wrong kind of value github:https://github.com/antirez/redis/issues/2864 原因为redis存在一个同key但是类型不同的数据,在插入新类型数据时需要先删除已有的key值.