Go24种设计模式--创建型模式
设计模式(Design Pattern)是软件工程中针对常见问题的通用解决方案。 它们不是具体的代码,而是经过验证的最佳实践,帮助开发者设计出灵活、可维护和可扩展的软件系统 使用设计模式的好处 面试 提高代码复用性,写出高质量代码 前人总结的最佳实践,在合适的地方用合适的设计模式,可以事半功倍 创建型模式在 Go 语言中,创建型模式(Creational Patterns)是一类用于处理对象创建的设计模式。它们的主要目标是提供一种灵活的方式来创建对象,同时隐藏对象创建的具体细节,从而降低代码的耦合度,并提高代码的可复用性和可维护性。 比如http.NewRequest(),bytes.NewReader(),md5.New() 创建型模式的核心思想是将对象的创建与使用分离,使得系统不依赖于具体的对象创建方式,而是依赖于抽象。 单例模式...
Linux任务忘挂后台?bg来救
方法 1:直接挂起当前任务到后台(推荐) 暂停任务: 按组合键 Ctrl + Z,将当前前台任务暂停(挂起),此时终端会显示类似: 1[1]+ Stopped python code/bert_baseline.py 将任务切换到后台运行: 输入命令 bg(将最近暂停的任务放到后台运行),终端显示: 12(base) root@gpu-1092425eb65d87e4b97a1-1-b6nqycupjgmy:~/IDRsPredictor# bg[1]+ python code/bert_baseline.py & 此时任务会在后台继续运行
pycharm快速跳出括号
自动补全括号,但是写到代码语句末尾,要跳出括号,还得向右下角方向移动一下,按右键→,再移手回来按分号;,再移到右下角,按↓向下键。这样手就脱离了键盘,降低了效率。我们可以把上下左右改成Alt+i/k/j/l,爽到飞起!
下载huggingface模型
使用 huggingface_hub 工具 安装工具库: bash 复制 下载 pip install huggingface_hub 通过命令行下载: bash 复制 下载 huggingface-cli download Rostlab/prot_bert –local-dir ./prot_bert_model --local-dir:指定本地保存路径(如 ./prot_bert_model)。
sudo命令缺失解决
问题: 1234root@799b7657ed3c:/app# sudo apt updatesudo apt install iputils-pingbash: sudo: command not foundbash: sudo: command not found 通过以下步骤在 Ubuntu(或 Debian 系统)中安装 sudo 命令: 切换到 root 用户(如果你还不是 root,提示符应该是 #,如果是 $ 需要切换): 1su 然后输入 root 密码。 更新软件包列表: 1apt update 安装 sudo: 1apt install sudo (可选)将你的用户添加到 sudo 用户组(假设你的用户名是 yourusername,请替换为实际用户名): 1usermod -aG sudo yourusername 这样你下次用 yourusername 登录时就可以使用 sudo 了。 重新登录 或者执行 su - yourusername 让组权限生效。
主机密钥变更客户端无法ssh连接
SSH 报告了“**REMOTE HOST IDENTIFICATION HAS CHANGED!**”这个错误。具体内容如下: 12345678@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!...Offending ECDSA key in C:\\Users\\QiLei/.ssh/known_hosts:9Host key for [xxxxxx]:20032 has changed and you have requested strict checking.Host key verification failed. 问题原因这是 SSH...
【Golang】动态规划
动态规划(Dynamic Programming, DP)是算法中的经典题型,LeetCode 上有许多高频题目。以下是常见的 DP 分类、经典题目及 Golang 实现模板总结: 一、经典题目分类与 Golang 实现1. 线性 DP 题目:70. 爬楼梯 123456789func climbStairs(n int) int { if n <= 2 { return n } dp := make([]int, n+1) dp[1], dp[2] = 1, 2 for i := 3; i <= n; i++ { dp[i] = dp[i-1] + dp[i-2] } return dp[n]} 优化空间(滚动数组): 12345678func climbStairs(n int) int { if n <= 2 { return n } a, b := 1, 2 for i := 3; i...
【Golang】贪心
贪心算法经典题目及Golang实现贪心算法是一种在每一步选择中都采取当前状态下最优的选择,从而希望导致全局最优解的算法策略。以下是一些LeetCode上经典的贪心算法题目及其Golang实现,并总结一个通用的解题模板。 经典贪心题目及Golang实现1. 分发饼干 (455. Assign Cookies)12345678910111213func findContentChildren(g []int, s []int) int { sort.Ints(g) sort.Ints(s) child, cookie := 0, 0 for child < len(g) && cookie < len(s) { if s[cookie] >= g[child] { child++ } cookie++ } return child} 2. 无重叠区间 (435....
【Golang】优先队列
优先队列在LeetCode上的经典题目及Golang实现优先队列(Priority Queue)是一种重要的数据结构,它在很多算法问题中都有广泛应用。以下是LeetCode上一些经典的优先队列题目,以及用Golang实现的解决方案和模板总结。 优先队列的Golang实现在Golang中,我们可以使用container/heap包来实现优先队列。首先,我们需要定义一个实现heap.Interface的类型: 123456789101112131415161718192021222324252627282930313233343536373839import "container/heap"// 定义一个最小堆type MinHeap []intfunc (h MinHeap) Len() int { return len(h) }func (h MinHeap) Less(i, j int) bool { return h[i] < h[j] }func (h MinHeap) Swap(i,...
【Golang】sort.Search二分包
Golang 中二分查找包的使用方法Go 标准库中的 sort 包提供了二分查找的功能,主要通过 sort.Search 函数实现。下面详细介绍如何使用这个功能。 二分法通用模板12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061func binarySearch(nums []int, target int) int { left, right := 0, len(nums)-1 // 初始化边界 for left <= right { // 终止条件 mid := left + (right-left)/2 // 防止溢出 if nums[mid] == target { return mid // 找到目标 } else if nums[mid] <...
