如何解决map [string] * type“无效的内存地址或nil指针取消引用”
当我尝试访问struct字段时出现错误
无效的内存地址或nil指针取消引用。 gdreport / main.go:30 + 0x1e6
我对错误一无所知:
这是我的代码:
var strPtr []*string
var findingId []string = []string{"findingid"}
strPtr = aws.StringSlice(findingId)
maxResult := int64(8)
condition := map[string]*guardduty.Condition{}
condition["id"].Equals = strPtr
第30行condition [“ id”]。等于= strPtr
aws sdk for golang https://docs.aws.amazon.com/sdk-for-go/api/service/guardduty/#Condition类型
解决方法
由于condition
是map
的空白pointers
,因此您将从nil
获得*guardduty.Condition
的{{1}}值。
一个两值赋值测试密钥是否存在:
condition
在此语句中,第一个值(i)被分配了存储在键“ route”下的值。如果该键不存在,则i是值类型的零值(0)。第二个值(ok)是一个布尔值,如果该键存在于地图中,则为true;否则为false。
将代码段更改为
i,ok := m["route"]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。