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

创建网站域名网赢做网站怎么样

创建网站域名,网赢做网站怎么样,易购网网页设计素材,怀孕单子图片在线制作关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等#xff0c;您的关注将是我的更新动力#xff01; 在编程中#xff0c;事件管理器是一种常见的工具#xff0c;用于通过通知来触发操作。在Go语言中#xff0c;我们可以通过创建… 关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等您的关注将是我的更新动力 在编程中事件管理器是一种常见的工具用于通过通知来触发操作。在Go语言中我们可以通过创建事件管理器和监听器来实现事件的处理。本文将介绍一个简单的Go事件管理器的实现并通过异步改进提高其性能。 监听器 首先我们需要创建一个监听器。在这个实现中监听器只是一个接收事件参数的函数。 type Listener[T any] func(T)事件管理器 事件管理器是一个用于管理事件和监听器的结构。它具有两个方法Add和Run。Add方法用于将新的监听器附加到事件上而Run方法用于执行事件管理器。 type Manager[T any] interface {Add(n string, l Listener[T])Run() }抽象事件管理器 为了方便使用我们可以创建一个抽象事件管理器它实现了事件管理器接口的一部分通用逻辑。虽然Go语言并不是面向对象的但我们可以通过模拟来实现类似的效果。 type BaseManager[T any] struct {lst map[string][]Listener[T] }func (m *BaseManager[T]) Invoke(n string, args T) {for _, ls : range m.lst[n] {ls(args)} }func (m *BaseManager[T]) Add(n string, l Listener[T]) {m.lst[n] append(m.lst[n], l) }BaseManager提供了Add方法用于添加监听器和Invoke方法用于触发指定事件的监听器。 具体事件管理器 下面是一个具体的事件管理器的示例实现命令事件管理器。该管理器接收用户从控制台输入的命令并根据命令类型触发相应的事件。 type Command struct {Kind stringArgs []string }type CommandEventManager struct {BaseManager[*Command] }func (m *CommandEventManager) Run() {var (inp stringargs Command)fmt.Scanln(inp)cmd : strings.Split(inp, :)if l : len(cmd); l 0 {m.Invoke(no-command, nil)} else if l 1 {args.Args strings.Split(cmd[1], )}args.Kind cmd[0]m.Invoke(any-command, args)m.Invoke(args.Kind, args) }func NewCommandEventManager() Manager[*Command] {return CommandEventManager{BaseManager: BaseManager[*Command]{lst: make(map[string][]Listener[*Command])},} }Run方法获取用户从控制台输入的命令并解析命令参数。如果没有命令或者命令参数则触发no-command事件否则触发any-command事件和具体命令的事件。 添加监听器 让我们向命令事件管理器添加一些监听器。 func main() {cem : NewCommandEventManager()cem.Add(no-command, func(_ *Command) {fmt.Println(no command was recieved)})cem.Add(any-command, func(c *Command) {fmt.Printf(the %s command was executed, c.Kind)})cem.Add(sum, func(c *Command) {a, _ : strconv.Atoi(c.Args[0])b, _ : strconv.Atoi(c.Args[1])fmt.Printf(the sum result is: %d, ab)})cem.Run() }在上面的示例中程序只执行一次但你可以将其放在一个无限循环中以持续监听命令。 异步改进 可以将事件管理器的执行改为异步方式以提高性能。每次执行事件时可以将其作为一个goroutine进行处理。甚至可以将每个监听器的执行也放在一个goroutine中以提高并发性能。 通过上述改进我们可以更好地利用Go语言的并发特性提高事件处理效率。
http://www.zqtcl.cn/news/747944/

相关文章:

  • 中国建设银行国际互联网网站网站是用什么做的
  • 做建设网站的活的兼职网络推广专员的岗位职责是
  • 韩国 网站设计保定网站开发公司
  • 发外链的网站都要企业注册网站建设的基本概念
  • 网站管理员有哪些权限中文域名网站好不好优化
  • wordpress主题 资源站关闭wordpress自动更新
  • 网站排名怎么上去创建全国文明城市我们应该怎么做
  • 网站 ftp自助建站信息网
  • 做珠宝的网站wordpress获取相关文章
  • 网站开发视频 百度云视频资源的网站怎么做
  • 写出网站建设的基本流程鹤山市城乡住房建设部网站
  • 万网域名注册后如何做网站教学网络传奇游戏
  • 岳阳网站建设方案免费网站模板建设
  • 郑州响应式网站制作如何做公众号微信
  • 专业公司网站建设精准引流推广团队
  • 蔡甸建设局网站怎么用云校建设学校网站
  • 建立网站需要哪些东西软件开发流程包括
  • 网站的pdf目录怎么做的网站编写
  • 南宫企业做网站wordpress图片显示距离
  • 青岛红岛做网站百度怎么打广告
  • 凡科建站怎么建网站网络搭建是什么工作
  • wordpress支持国内视频的编辑器网站优化排名软件网站
  • 建设摩托官方网站南京做网站群的公司
  • 晋城城乡建设局网站设计网站公司选泽y湖南岚鸿询 问
  • 思坎普网站建设湘潭网站推广
  • 北京网站建设公司哪个最好做投标网站条件
  • 网站建设的成本有哪些内容怎么样制作网页
  • 怎么做网站的seo排名知乎茂名网站制作公司
  • 建安证查询网站官方网站建设对比
  • 关于医院要求建设网站的请示市场推广12种推广渠道