指针 – golang接口合规性编译类型检查
发布时间:2020-12-16 09:24:25 所属栏目:大数据 来源:网络整理
导读:我从camlistore( http://code.google.com/p/camlistore/source/browse/pkg/cacher/cacher.go)看到以下语句. var ( _ blobref.StreamingFetcher = (*CachingFetcher)(nil) _ blobref.SeekFetcher = (*CachingFetcher)(nil) _ blobref.StreamingFetcher = (*Di
我从camlistore(
http://code.google.com/p/camlistore/source/browse/pkg/cacher/cacher.go)看到以下语句.
var ( _ blobref.StreamingFetcher = (*CachingFetcher)(nil) _ blobref.SeekFetcher = (*CachingFetcher)(nil) _ blobref.StreamingFetcher = (*DiskCache)(nil) _ blobref.SeekFetcher = (*DiskCache)(nil) ) 我知道没有创建变量,并且语句确保编译器检查CachingFether实现StreamingFetcher和SeekFetcher的公共函数. RHS部分使用带有nil参数的指针构造函数语法.这种语法在Go语言中意味着什么? 解决方法
(* T)(零)是
Conversion.在这种情况下,它代表一个类型为零,即.例如,相同的值
var p *T 在给它分配任何东西之前. 转换的标准语法是T(expr),但*的优先级会错误地绑定它 *T(expr) 此语法意味着使用一个参数expr解除引用函数T的返回值.这就是转换具有替代语法的原因: (T)(expr) 其中T当然可以是* U.因此 (*U)(expr) 是您在Camlistore存储库中看到的通用形式. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |