[Go] 利用函数类型实现封装中的回调
当进行业务逻辑开发的时候,经常要进行封装,封装成独立的类文件,在类文件的属性中预留出函数类型的API
在调用该类文件中某些方法的时候,也根据业务需要调用类属性中的函数,
在主业务中可以传递特定的函数注册到属性中,也会被调用到
test.php
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是封装的类文件,回调类主模块中的函数
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") }
十年开发经验程序员,离职全心创业中,历时三年开发出的产品《唯一客服系统》
一款基于Golang+Vue开发的在线客服系统,软件著作权编号:2021SR1462600。一套可私有化部署的网站在线客服系统,编译后的二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的全渠道在线客服系统,致力于帮助广大开发者/公司快速部署整合私有化客服功能。
开源地址:唯一客服(开源学习版)
官网地址:唯一客服官网