当前位置: 首页 > news >正文

做时时彩网站平台有哪些网络推广优化

做时时彩网站平台有哪些,网络推广优化,温州鹿城网站制作报价,详细网络设计方案一、Functional Options Pattern(函数式选项模式) 缘起:知道这个Option是在filecoin-lotus项目代码中,当时感觉不太好懂,但不影响对大局的理解,后来有时间了去深入研究了一下。其实通过一个简单的示例就能理解他是干嘛的了&#…

一、Functional Options Pattern(函数式选项模式)

缘起:知道这个Option是在filecoin-lotus项目代码中,当时感觉不太好懂,但不影响对大局的理解,后来有时间了去深入研究了一下。其实通过一个简单的示例就能理解他是干嘛的了:

package mainimport "fmt"func main(){config1 := NewConfig()config1.Print()config2 := NewConfig(WithHost("192.168.1.1"),WithPort(8088))config2.Print()
}type Config struct {host stringport int
}func(c *Config)Print(){fmt.Println("c.host: ",c.host,"  c.port: ",c.port)
}type Option func(c *Config)func WithHost(host string)Option{return func(c *Config) {c.host = host}
}func WithPort(port int)Option{return func(c *Config) {c.port=port}
}func NewConfig(opts ...Option)(c *Config){c = &Config{host: "127.0.0.1",port: 8080,}for _,opt :=range opts{opt(c)}return c
}

从代码中可以看到,option模式的作用主要是在实例化对象的时候,可以更灵活的传参,可以以任意的顺序传任意部分字段的参数,比如有八个参数,我可以只传0或1或2或……8个参数,且顺序可以是乱序的。很多项目的源码中都有用到option模式,理解他的作用和用法对于阅读项目源码有好处。

二、接口与多态的运用

总的结构是:
1、纲领文件;2、接口文件;3具体实现文件(多个)

//1、纲领文件
var contractOnce sync.Oncevar contractTemplate = make(map[int8]TypeEvent)//每新增一个contract,需要新增一个enum & contractTemplateconst (WalletType    = 1IncentiveType = 2
)func EventAllFactory(contractType int8, contractAdd string, client *ethclient.Client, data *types.Log) {contractOnce.Do(func() {contractTemplate[WalletType] = new(wallet.Event)contractTemplate[IncentiveType] = new(incentive.Event)})if _, ok := contractTemplate[contractType]; !ok {return}contractTemplate[contractType].PullEvent(contractAdd, client, data)
}
//2、 接口文件
type TypeEvent interface {PullEvent(contractAdd string, client *ethclient.Client, data *types.Log)
}
//3、具体实现之一
type MintEvent struct{}func(mintEvent MintEvent)PullEvent(contractAdd string, client *ethclient.Client, data *types.Log){//todo:logic
}

可以看到纲领文件的作用是用一个map存储各种类型的实现实例,然后根据不同的实例执行其方法,这个map的value可以直接使用接口名。

纲领文件中使用到了sync.Once及其Do方法,这个类似init()方法,只执行一次,但时机是EventAllFactory函数第一次被调用时。

init函数是当文件被加载时执行,仅执行一次
sync.Once当代码需要被执行时执行,仅执行一次

三、常用API,可以背下来:

//获取以太坊地址
var address common.Address = common.HexToAddress("0x000000")//调用合约方法callOpt := &bind.CallOpts{Pending:     true,BlockNumber: blockNumBig,Context:     context.Background(),}
contractObject.CallContractFunction(callOpt,otherParam)//想把对象转换为json字符串且字段名首字母小写:
type Vo{Name string `json:"name"`Age string `json:"age"`
}
vo := &Vo{"冯宝宝","168"}
jsonResult,err :=json.Marshal(vo)
//java中把冯宝宝还原:Vo vo = JSON.parseObject(o.toString(), Vo.class);

回顾下java中,存取jsonArray:
存时转为JSONString:

JSON.toJSONString(list)

取时转为原list

JSON.parseObject(object.toString(), new TypeReference<List<SomeVo>>() {})
http://www.lbrq.cn/news/2370349.html

相关文章:

  • 网站301怎么做seo流程
  • 国内最先做弹幕的网站网站免费推广平台
  • 美食网站建设策划书竞价网站
  • 网站域名可以做端口映射吗千锋教育的it培训怎么样
  • 建设银行理财网站网站开发用什么软件
  • 动漫设计包括哪些内容温州seo排名公司
  • 建筑公司企业技术负责人岗位职责seo数据分析
  • 自己做的网站怎么设置关键词百度app
  • 网站建设推广的话术广州网站定制多少钱
  • 密云网站开发公众号开发网站公司
  • 新开最好的传奇网站免费宣传平台
  • 开网站需要哪些程序安卓优化大师手机版下载
  • 公司网站设网店培训教程
  • 网站建设整改落实情况网站seo查询工具
  • 陕西住建厅网站官网seo优化培训公司
  • 网站更新提醒一个好的产品怎么推广
  • html网站建设流程怎么接广告赚钱
  • 网站建设怎么下载代码万能导航网
  • 大兴区网站建设公司灰色词优化培训
  • 微信管理软件哪个最好家庭优化大师
  • 莘县网站定制兰州seo整站优化服务商
  • 做网站哪里学北京seo优化哪家好
  • 网站开发需要的人员最近的国际新闻大事
  • 小程序定制开发多少钱一个seo网站诊断流程
  • 营销网站建设文章长春网站推广公司
  • 深圳整站全网推广西安网站seo公司
  • bitcoind 做交易网站搜索引擎推广简称
  • 免费网站建站有哪些火星时代教育培训机构官网
  • 做网站赌博代理的犯法么赣州seo公司
  • 网站建设教材下载刷赞抖音推广网站
  • 基础算法题
  • CrewAI与LangGraph:下一代智能体编排平台深度测评
  • 《工程伦理》分析报告五 软件开发
  • AI应用核心转向Context Engineering
  • MAC 苹果版Adobe Photoshop 2019下载及保姆级安装教程!!
  • 网络安全初级(XSS-labs 1-8)