网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
}
}
// 解绑事件
public function off($name, $handler = null)
{
// 如果事件不存在,返回 false
if (empty($this->events[$name])) {
return false;
}
// 如果没有指定具体的回调函数,则删除这个事件的所有回调
if ($handler === null) {
unset($this->events[$name]);
return true;
}
$removed = false;
// plain event names
if (isset($this->events[$name])) {
// 通过循环删除指定中的回调函数
foreach ($this->events[$name] as $i => $event) {
if ($event[0] === $handler) {
unset($this->events[$name][$i]);
$removed = true;
}
}
if ($removed) {
// 如果删除成功,则重建一个事件回调函数数组的索引
$this->events[$name] = array\_values($this->events[$name]);
return $removed;
}
}
return $removed;
}
// 触发事件
public function trigger($name)
{
$eventHandlers = [];
if (!empty($this->events[$name])) {
$eventHandlers = array\_merge($eventHandlers, $this->events[$name]);
}
if (!empty($eventHandlers)) {
foreach ($eventHandlers as $handler) {
call\_user\_func($handler[0], $handler[1]);
}
}
}
}
// 今天时间有限先写到这里
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
且后续会持续更新**