关键字 var 后面的下划线和接口名称是什么意思?
在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天编程网就整理分享《关键字 var 后面的下划线和接口名称是什么意思?》,聊聊,希望可以帮助到正在努力赚钱的你。
问题内容来自http://golang.org/class="lazy" data-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(class="lazy" data-src interface{}) (Value, error) {....}
我知道 valueconverter 是一个接口名称。第 58 行似乎声明 booltype 实现接口 valueconverter,但这有必要吗?我删除了第 58 行,代码运行良好。
解决方案
它提供静态(编译时)检查 boolType
是否满足 ValueConverter
接口。用作变量名称的 _
告诉编译器有效地丢弃 RHS 值,但要对其进行类型检查并评估它是否有任何副作用,但匿名变量本身不占用任何进程空间。 /p>
在开发和接口的方法集和/或类型实现的方法经常更改时,这是一个方便的构造。该构造可以防止忘记匹配类型和接口的方法集,其目的是使它们兼容。它有效地防止了 go 安装
一个有此类遗漏的损坏(中间)版本。
今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注编程网公众号,一起学习编程~
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341