博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Go编程之接口作结构体属性
阅读量:4134 次
发布时间:2019-05-25

本文共 620 字,大约阅读时间需要 2 分钟。

最近在看Ethereum源码,发现在它的BlockChain结构体里面有属性直接是接口,它有个set函数,用于设置接口的,传的值为实现这个接口的一个结构体。下面自己试着写了一个小demo:
package mainimport (	"fmt")type A interface {	NameGet() string}type B struct {	i int	a A}func NewB(a A) *B {	nb := &B{i: 2}	nb.SetA(a)	return nb}func (b *B) SetA(a A) {	b.a = a}type C struct {	name string}func NewC() *C {	c := &C{"chen"}	return c}func (c *C) NameGet() string {	return c.name}func main() {	b := NewB(NewC())	fmt.Println(b.a.NameGet())}

A是一个接口,B是一个结构体,有个A接口属性,它有个方法用于设置A接口,在NewB里面调用,C是一个实现了A里面接口的结构体,把它的对象传给NewB做参数。这样我们可以调用b.a.NameGet()方法。这里面,我们可以把这个接口函数作为一个服务程序,开个协程,可以实时或者定时调用。以太坊里面应该就是这个原理,应该是5s去调用一次那个接口函数。

转载地址:http://mmsvi.baihongyu.com/

你可能感兴趣的文章
多服务器的用户身份认证方案
查看>>
Tomcat 的集群和负载均衡
查看>>
Lucene构建index性能调整
查看>>
Map Reduce - the Free Lunch is not over?
查看>>
众说纷“云”:看云计算在存储领域异军突起
查看>>
Using Nutch 0.8.1 for Intranet Crawling and Searching
查看>>
类似Google构架的开源项目Hadoop近获社区关注
查看>>
hadoop 分布式文件系统:体系和设计
查看>>
用Hadoop搭建分布式存储和分布式运算集群
查看>>
IBM推动MapReduce发布Eclipse插件
查看>>
Linux 内核剖析
查看>>
使用 Linux 系统调用的内核命令
查看>>
Yahoo!社区架构
查看>>
Tailrank 网站架构
查看>>
Web缓存加速指南
查看>>
WikiPedia 技术架构学习分享
查看>>
Digg 网站架构
查看>>
Twitter 的架构扩展: 100 倍性能提升
查看>>
最便宜的高负载网站架构
查看>>
分析mixi.jp and Yeejee.com:用开源搭建的可扩展大型SNS网站
查看>>