go - for循环中的隐式内存别名

标签 go static-analysis

我正在使用golangci-lint,并且在以下代码中遇到错误:

versions []ObjectDescription
... (populate versions) ...

for i, v := range versions {
    res := createWorkerFor(&v)
    ...

}

错误是:
G601: Implicit memory aliasing in for loop. (gosec)
                     res := createWorkerFor(&v)
                                            ^

确切地说,“for循环中的隐式内存别名”是什么意思?我在golangci-lint文档中找不到任何错误描述。我不明白这个错误。

最佳答案

索引将解决问题:

for i := range versions {
    res := createWorkerFor(&versions[i])
    ...

}

关于go - for循环中的隐式内存别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62446118/

相关文章:

go - Golang 有 "safeTemplateVariable"类函数吗?

go - 如何使用 gin 作为服务器编写 prometheus 导出器指标

static-analysis - 是否有像 Java 字节码的 ASM 这样的 CIL 静态分析库?

xcode - 深层静态分析和浅层静态分析有什么区别?

c - 查找 LLVM IR 中的所有函数指针

debugging - 使用 Sublime 'GoDebug' 插件时遇到问题

postgresql - 使用 PostgreSQL 和 json-api 的发布请求返回一个空体

使用相同的 SQL 查询时,Go 包 "database/sql"得到了不同的结果

php - 使用 PHP 分词器寻找函数

java - Eclipse 中的值(value)跟踪