-
Notifications
You must be signed in to change notification settings - Fork 0
20210612思路汇总(conn2datesthendsen'd's2connthread)
zqy edited this page Jun 13, 2021
·
2 revisions
下面总结下析构的核心思路:
他们都需要接收外界的事件,或者说,响应外界的事件从而触发析构逻辑
他们都需要响应两个外界的事件:
conn2datesthread:
1.tcp.Close()
2.<-p.sends2Conn_stop_ch
下面来探讨省略2的可行性 20210613-09点17分是可行的并已经实现,但是存在了新的问题: 也就是两者内部在进行简易初始化时所产生的错误该如何处理,(如执行p.attach方法时,但是p.attach只是一个代表,我需要思考明白解决这一类问题最优雅的方式
转化下思路,是否可以把这些err在逻辑思路上去等同于“TCPUSRIO808R_CONN2DATES_ERRORINLOOP”?
也就是说,这些错误类型应命名为“TCPUSRIO808R_CONN2DATES_INITFAIL”与“TCPUSRIO808R_SENDS2CONN_INITFAIL”?
以及如果是这样的话,由于初始化只进行了一半就失败了,但是存在“一小部分已实现的初始化”该如何处理呢?
闭包闭包闭包!!!
https://blog.csdn.net/qq_35976351/article/details/81986496
这个文章贼棒!
这个例子就是最好的答案 闭包作为函数返回值 匿名函数作为返回值,不如理解理解为闭包作为函数的返回值,如下代码:
func Increase() func() int {
n := 0
return func() int {
n++
return n
}
}
func main() {
in := Increase()
fmt.Println(in())
fmt.Println(in())
}
/*
输出:
1
2
*/