在以下代码中

package main

import "fmt"

func test[A, B any](a A, b B) {
    fmt.Printf("a: %v, b: %v", a, b)
}

func main() {
    test[string, int]("test", 1)
}

调用测试方法时的显式类型规范是不必要的,也是过度指定的.调用test("test", 1")就足够了,因为类型可以从参数中推断出来.

是否可以配置VSCode来指示这一点?或者有没有林特会报道这件事? 不知何故,我记得我曾看到VSCode将不必要的类型规范显示为灰色文本,但要么是我搞砸了配置,要么是这个功能消失了.

这对于更高级的情况将非常有帮助,特别是因为围棋中的类型推断正在稳步改进,并且为较旧的围棋版本编写的代码可能会得到简化.

根据文件,设置

    "gopls": {
        "ui.diagnostic.analyses": {
            "infertypeargs": true
        }
    }

应该已经引起了未使用类型的可视指示.但这并没有出现在我的面前.

推荐答案

目前,此分析器仅在不必要的类型参数内的代码操作中可用:

x/tools/gopls: infertypeargs no longer produces diagnostics #63821正在跟踪缺少诊断消息.此问题解决后,诊断消息应重新出现在VS代码中.

默认情况下已启用infertypeargs,因此您不需要进行配置.

Go相关问答推荐

Kafka消费者在需要时不会暂停

按键值排序字符串- Golang

如何在jsonrpc服务器的服务器端捕获错误?

mockgen不创建模拟

MaybeReadByte对通道的使用如何在Go中提供随机行为?

如何修复 Go 中协议缓冲区定义中重新定义的字段?

如何在golang中使用viper获取对象的配置数组?

GORM中是否可能自动迁移具有循环关系的表?

在 Go sync.Map 中,为什么这部分实现不一致或者我误解了什么?

Yocto 无法交叉编译 GoLang Wails 应用程序

errors.Wrap 和 errors.WithMessage 有什么区别

Go http.FileServer 给出意外的 404 错误

使用自定义处理程序 nats golang 保留订阅方法

如何使用 go-playground/validator 编写 snake case 绑定标签?

使用 Golang 在字符串中循环重复数据

Gorm 在保存/创建时序列化 struct

Golang 使用 docker 将敏感数据作为参数传递

GRPC 反向代理混淆 GRPC 和 GRPC-Web

Golang:每个键具有多个值的映射

Golang 泛型同时具有接口和实现