前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >[Go] 利用函数类型实现封装中的回调

[Go] 利用函数类型实现封装中的回调

作者头像
唯一Chat
发布于 2019-12-19 11:23:59
发布于 2019-12-19 11:23:59
2.4K00
代码可运行
举报
文章被收录于专栏:陶士涵的菜地陶士涵的菜地
运行总次数:0
代码可运行

当进行业务逻辑开发的时候,经常要进行封装,封装成独立的类文件,在类文件的属性中预留出函数类型的API

在调用该类文件中某些方法的时候,也根据业务需要调用类属性中的函数,

在主业务中可以传递特定的函数注册到属性中,也会被调用到

test.php

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package main

import "log"

func main() {
    c := NewConn(callback, callback2)
    c.Start()
}

//在当前模块定义的回调函数
func callback() {
    log.Println("i am callback")
}
func callback2(name string) string {
    log.Println("i am callback2 ", name)
    return "hello"
}

connection.go是封装的类文件,回调类主模块中的函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package main
type Connection struct{
    handleFunc func()
    handleFunc2 func(name string)string
}
//把被回调函数注册进了封装类的属性中
func NewConn(callback func(),callback2 func(name string)string) *Connection{
    c:=&Connection{
        handleFunc: callback,
        handleFunc2: callback2,
    }
    return c
}
//在进行某些业务时也把回调函数执行了
func (c *Connection)Start(){
    c.handleFunc()
    c.handleFunc2("taoshihan")
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-12-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
回调、使用Promise封装ajax()、Promise入门
Callback 很常见 $button.on('click', function(){}) click后面的 function 就是一个回调,因为「我」没有调用过这个函数,是 jQuery 在用户点击 button 时调用的(当用户点击之后,这个函数才执行,现在我只是传了一个参数,这个参数是一个点击后要执行的函数)。
代码之风
2018/10/31
3.4K0
[Go] 轻量服务器框架基础TCP连接的抽象和封装
对tcp连接部分以及与连接绑定的业务部分进行抽象和封装 主要是对连接的开启关闭和读写进行封装,抽象出接口,使用回调进行具体业务的绑定 zinterface/iconnection.go package zinterface import "net" type IConnection interface{ Start() Stop() GetConnId() uint32 IsClosed() bool Send(data []byte,len int) error
唯一Chat
2019/12/19
8830
go进阶-GO创建web服务+websocket详解
go提供了一系列用于创建web服务器的标准,而非常简单。只需要调用net/http包中的ListenAndServe函数并传入网络地址和负责处理的处理器就ok了。net/http库实现了整套的http服务中的客户端、服务端接口,可以基于此轻松的发起HTTP请求或者对外提供HTTP服务。
黄规速
2024/05/24
2.3K0
go进阶-GO创建web服务+websocket详解
golang学习笔记之四 - web服务器与表单处理
我们看到上面的代码,要编写一个Web服务器很简单,只要调用http包的两个函数就可以了;如果你以前是PHP程序员,那你也许就会问,我们的nginx、apache服务器不需要吗?Go就是不需要这些,因为他直接就监听tcp端口了,做了nginx做的事情,然后sayhelloName这个其实就是我们写的逻辑函数了,跟php里面的控制层(controller)函数类似
躺平程序员老修
2023/09/05
1980
[Go]TCP服务中读写进行协程分离
读写两部分进行一下分离,中间通过chan进行传递数据 ,这样可以方便的在write中进行一些业务处理
唯一Chat
2019/12/25
9790
2019-10-21-C++CLI委托回调
我们都习惯了在c#中使用事件,但是c++中没有默认的事件机制,所以在编写c++/cli时,这将是一个令人困扰的问题
黄腾霄
2020/06/10
7570
使用Go开发一个简单的服务器程序
最近有个小项目,需要一个简单的后台程序来支撑,本来想用Nodejs来做,但是由于本人js一直很菜,并且很讨厌callback,虽然我也很喜欢异步模型,但我一直都觉得JS是反人类的。后台就用了go处理,数据存储使用的mongodb。怎么说来着,从生成数据的角度来讲,这东西把C#+SQLCE甩出好几条街。生成go+mongodb 大约,10秒左右,而后者只是大约需要5分钟。当然,这个完全是写法问题。因为是写一条,就保存一下,如果C#那边一次保存的话性能也不会很差。但考虑的部署问题,因为GO只要2个exe和一个m
李海彬
2018/03/26
1K0
Go语言实现Websocket服务端
如果想多个协程处理,handleMessages()调用多次即可,是不会导致处理信息重复的。
码客说
2024/03/29
1650
从0开始构建一个Oauth2Server服务 <2> 访问 OAuth 服务器中的数据
本节中我们将介绍如何在现有的 OAuth 2.0 服务器上访问您的数据。对于此示例,我们将使用 GitHub API 并构建一个简单的应用程序,该应用程序将列出登录用户创建的所有存储库。
用户1418987
2023/10/16
1690
从0开始构建一个Oauth2Server服务 <2> 访问 OAuth 服务器中的数据
基于C++实现的EventLoop与事件驱动编程
事件驱动编程(Event-Driven)是一种编码范式,常被应用在图形用户界面,应用程序,服务器开发等场景。
Coder-ZZ
2024/05/09
1.5K0
基于C++实现的EventLoop与事件驱动编程
golang源码分析(1):http 服务源码分析
直接在浏览器里访问9100端口就可以返回 hello world ! go已经把所有的细节封装好了,我们只需要自己去写Handler实现就够了。源码简单来说做了以下几件事:
golangLeetcode
2022/08/02
9270
4.6 C++ Boost 函数绑定回调库
Boost 库是一个由C/C++语言的开发者创建并更新维护的开源类库,其提供了许多功能强大的程序库和工具,用于开发高质量、可移植、高效的C应用程序。Boost库可以作为标准C库的后备,通常被称为准标准库,是C标准化进程的重要开发引擎之一。使用Boost库可以加速C应用程序的开发过程,提高代码质量和性能,并且可以适用于多种不同的系统平台和编译器。Boost库已被广泛应用于许多不同领域的C++应用程序开发中,如网络应用程序、图像处理、数值计算、多线程应用程序和文件系统处理等。
王瑞MVP
2023/08/21
3110
Go 中几种常见的编程模式
模式可以理解成最佳实践,或者是约定俗成的规范或套路,熟悉一些常见模式可以方便理解项目代码。本文是参考左耳朵耗子的专栏文章做的笔记,另外也缅怀一下耗子叔。
菜皮日记
2023/12/18
1520
Go 中几种常见的编程模式
Go中的匿名函数与闭包
题图来自 https://www.meetgor.com/golang-closures/
fliter
2023/09/05
2940
Go中的匿名函数与闭包
深入学习用Go编写HTTP服务器
Go是一门通用的编程语言,想要学习 Go 语言的 Web 开发,就必须知道如何用 Go 启动一个 HTTP 服务器用于接收和响应来自客户端的 HTTP 请求。用 Go实现一个http server非常容易,Go 语言标准库net/http自带了一系列结构和方法来帮助开发者简化 HTTP 服务开发的相关流程。因此,我们不需要依赖任何第三方组件就能构建并启动一个高并发的 HTTP 服务器。这篇文章会学习如何用net/http自己编写实现一个HTTP Serverk并探究其实现原理,以此来学习了解网络编程的常见范式以及设计思路。
KevinYan
2020/02/17
2.5K0
深入学习用Go编写HTTP服务器
golang-net/http源码分析之http server
第一时间获取文章,可以关注本人公众号 月牙寂道长 yueyajidaozhang
月牙寂道长
2018/03/06
1.7K0
【Golang】gorilla/websocket实战和底层代码分析
在【为什么有了http,还需要websocket,我懂了!】中介绍了web端即时通讯的方式,以及websocket如何进行连接、验证、数据帧的格式,这些都是了解websocket的基础知识。
小许code
2023/11/30
2.9K0
【Golang】gorilla/websocket实战和底层代码分析
Go HTTP 编程 | 02 - net\u002Fhttp 包剖析
在上一篇文章中我们已经使用 net/http(以下简称 http) 创建了一个 Web 服务,并从源码层面分析了整个请求流转的过程,其中有两个比较核心的组件或者功能,一个是连接 Conn,另外一个是 ServeMux。
RiemannHypothesis
2022/11/25
4650
Go HTTP 编程 | 02 - net\u002Fhttp 包剖析
我攻克的技术难题:自定义延时消息队列
消息队列是一种异步的服务间通信方式,适用于无服务器和微服务架构。消息在被处理和删除之前一直存储在队列上。每条消息仅可被一位用户处理一次。消息队列可被用于分离重量级处理、缓冲或批。
不惑
2024/01/29
2930
我攻克的技术难题:自定义延时消息队列
Golang:深入理解http服务开发原理
http 是典型的 C/S 架构,客户端向服务端发送请求(request),服务端做出应答(response)。
公号:咻咻ing
2019/10/22
1.7K0
相关推荐
回调、使用Promise封装ajax()、Promise入门
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验