依赖注入依赖注入使用接口来实现依赖注入,降低模块间的耦合。概念: 依赖注入是一种设计模式,它允许你将组件的依赖关系(即其他组件或服务)从组件本身中分离出来,并在组件外部进行配置。这样做可以减少组件之间的耦合,使得代码更加模块化,易于测试和维护。 Go 语言实现: 在 Go 语言中,可以通过接口来实现依赖注入。接口定义了组件所需的行为,然后你可以在运行时注入任何实现了这些行为的具体类型。 优点: 降低耦合 2024-07-21 Golang
回调函数和直接调用的区别回调函数与直接调用在表面上看起来可能相似,但它们在程序设计和执行上有本质的区别。以下是回调函数与直接调用之间的一些关键差异: 调用时机: 直接调用:函数A直接调用函数B,函数B的执行是立即的,并且是在函数A的控制下进行的。 回调函数:函数A接收函数B作为参数,但函数B的执行时机可能由外部事件或条件触发,不一定立即执行。 控制流: 直接调用:控制流是线性的,函数B执行完毕后,控制权返回给函 2024-07-21 Golang
vue3快速实践教程 | Vue.js (vuejs.org) 声明式渲染你在编辑器中看到的是一个 Vue 单文件组件 (Single-File Component,缩写为 SFC)。SFC 是一种可复用的代码组织形式,它将从属于同一个组件的 HTML、CSS 和 JavaScript 封装在使用 .vue 后缀的文件中。 Vue 的核心功能是声明式渲染:通过扩展于标准 HTML 的模板语法,我们可以根据 Jav 2024-06-24 vue3 入门
jupyter安装pip install notebook 用于启动 Jupyter Notebook 服务的一系列命令 12345jupyter-notebook stop 8888JUPYTER_TOKEN=$(< /dev/urandom tr -dc A-Za-z0-9 | head -c16; echo)echo $JUPYTER_TOKENnohup jupyter-notebook --ip 2024-06-21 Python
leetcode 每日温度 单调栈739. 每日温度 - 力扣(LeetCode) 栈里边存放的是还没有找到后边更大值的元素 123456789101112131415func dailyTemperatures(temperatures []int) []int { n := len(temperatures) ans := make([]int, n) st := []int{} 2024-05-21 leetcode
go语言实现优先队列Go 语言中实现优先队列,最大堆和最小堆通常可以通过使用容器/heap包来完成。Go 语言的heap包提供了一个堆操作的接口,它允许用户实现任意类型的堆,包括最大堆和最小堆。 1. 优先队列优先队列是一种特殊的队列,元素出队顺序是根据优先级来决定的,而不是按照元素入队顺序。在Go语言中,优先队列可以通过heap包来实现。 2. 最大堆最大堆是一种特殊的完全二叉树,其中每个父节点的值都大于 2024-05-19 leetcode
leetcode 355设计推特Problem: 355. 设计推特 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 2024-05-10 leetcode
设计题思考设计数据结构和算法时,通常需要遵循以下步骤来解决问题: 理解问题:首先,彻底理解题目要求做什么,包括输入、输出、限制条件等。 确定需求:明确需要哪些数据结构来存储信息,以及如何使用这些数据结构来满足题目的需求。 设计数据结构: 确定实体类型:例如,用户(User)、推文(Tweet)等。 确定实体之间的关系:例如,用户可以发布推文,用户可以关注其他用户。 定义方法:根据题目要求,设计所 2024-05-09 leetcode
如何使用递归123456789101112131415func sortedArrayToBST(nums []int) *TreeNode { return traversal(nums,0,len(nums)-1)}// 定义:返回nums root 节点func traversal(nums []int,left int , right int) *TreeNode{ 2024-05-08 Golang