gpt4 book ai didi

syntax - 关键字 var 后的下划线和接口(interface)名称是什么意思?

转载 作者:数据小太阳 更新时间:2023-10-29 03:18:46 25 4
gpt4 key购买 nike

来自 http://golang.org/src/pkg/database/sql/driver/types.go :

type ValueConverter interface {
// ConvertValue converts a value to a driver Value.
ConvertValue(v interface{}) (Value, error)
}

var Bool boolType

type boolType struct{}

var _ ValueConverter = boolType{} // line 58

func (boolType) String() string { return "Bool" }

func (boolType) ConvertValue(src interface{}) (Value, error) {....}

我知道 ValueConverter 是一个接口(interface)名称。第 58 行似乎声明 boolType 实现接口(interface) ValueConverter,但有必要吗?我删除了第 58 行,代码运行良好。

最佳答案

它提供静态(编译时)检查 boolType 是否满足 ValueConverter 接口(interface)。用作变量名称的 _ 告诉编译器有效地丢弃 RHS 值,但对其进行类型检查并评估它是否有任何副作用,但匿名变量本身没有'不占用任何进程空间。

在开发和接口(interface)的方法集和/或类型实现的方法经常更改时,这是一个方便的构造。该构造可防止忘记匹配旨在使它们兼容的类型和接口(interface)的方法集。它有效地防止了 go install 有这种遗漏的损坏(中间)版本。

关于syntax - 关键字 var 后的下划线和接口(interface)名称是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57139190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com