一、 核心知识点补充与原理解析1. Go 与传统面向对象语言的差异 Go 没有什么:没有 class(用 struct 代替),没有传统的继承(用组合/嵌套代替),没有方法重载(同名方法编译不通过),没有传统的 try/catch(用 defer/recover 或多返回值 error 处理)。 Go 有什么:结构体(struct)、常量枚举(iota)、极简接口实现(Duck Typing 鸭子类型)、并发基因(goroutine 与 channel)。 2. 面向对象:方法与指针接收者 (Method Sets)在 Go 中,结构体的方法可以绑定到“值”上,也可以绑定到“指针”上。方法集(Method Set)规则: 类型 T 的方法集只包含接收者为 T 的方法。 类型 *T(指针)的方法集包含接收者为 T 和 *T 的所有方法。 调用时的语法糖:无论定义的是 T 还是 *T,由于 Go 编译器的语法糖,可以用实例值或指针去调用所有方法(编译器会自动解引用或取地址,如 u.Run() 会被转成 (&u).Run())。 接口实现的严格限制:如果方法的接收者是 ...
题目描述LeetCode 1356. 根据数字二进制下 1 的数目排序 给你一个整数数组 arr。请你将数组中的元素按照其二进制表示中数字 1 的数目升序排序。 如果存在多个数字二进制中 1 的数目相同,则必须将它们按照数值大小升序排列。 请你返回排序后的数组。 解题思路这道题的核心是自定义排序规则: 首先统计每个数字二进制表示中 1 的个数 按照 1 的个数升序排序(个数少的排前面) 如果 1 的个数相同,则按照数值大小升序排序 Go 语言提供了 bits.OnesCount() 函数来统计二进制中 1 的个数,非常方便。 代码实现方法一:冒泡排序1234567891011121314func sortByBits(arr []int) []int { n := len(arr) for i := 0; i < n-1; i++ { for j := 0; j < n-1-i; j++ { cntA := bits.OnesCount(uint(arr[j])) c ...
今天开始记录leetcode的每日一练和其他题目编写思路与过程。 题目描述LeetCode 1022. 从根到叶的二进制数之和 给出一棵二叉树,其上每个结点的值都是 0 或 1。每一条从根到叶的路径都代表一个从最高有效位开始的二进制数。 例如,如果路径为 0 -> 1 -> 1 -> 0 -> 1,那么它表示二进制数 01101,也就是 13。 对树上的每一片叶子,我们都要找出从根到该叶子的路径所表示的数字。 返回这些数字之和。题目数据保证答案是一个 32 位整数。 解题思路根节点到叶子节点的数字之和,就是根节点到叶子节点的二进制数之和。 核心思路是使用深度优先搜索(DFS)遍历二叉树,在遍历过程中: 每向下走一层,当前数字左移一位(相当于乘以2) 将当前节点的值加入到数字中(通过位运算 | 操作) 到达叶子节点时,将该路径表示的数字累加到结果中 代码实现12345678910111213141516171819202122232425262728/** * Definition for a binary tree node. * type Tree ...
前言在 if 站看到这个免费的教程,所以分享一下个人心得,直接上干货教程。 步骤一:注册免费域名先进入 DNS.HE 域名中心 然后登录点击免费域名,有 GitHub 账户就行,一般可以注册三个二级域名,注册 de5.net 后缀。 步骤二:进入 Cloudflare然后就可以开始绑定 CF 了,直接进入网址,也还是可以用谷歌邮箱或者 GitHub 登录。 步骤三:添加域名到 Cloudflare输入自己刚刚获得的域名然后跟着 CF 的步骤走就行,方案就选年支付,然后免费套餐就行。 步骤四:获取 Cloudflare 域名服务器然后继续激活,来到这里把两个服务复制下来。 步骤五:添加 NS 服务然后添加到 NS 服务就行。 步骤六:激活成功可以看到就成功激活了,10 年。 步骤七:确认域名服务器更新最后还要回到 CF 点击”我更新了我的域名服务器”,就最下面那个蓝色按钮就行了,等几分钟就绑好 CF 了。 总结通过以上步骤,你就可以免费获得一个 de5.net 后缀的域名,并成功绑定到 Cloudflare,享受 10 年的免费使用期。
环境:Windows 11 + WSL 2 (Ubuntu 22.04/24.04)项目:Vue 2 + Vite (TodoList) 第一部分:基础环境搭建 (WSL)无论采用哪种部署方式,首先需要确保 Linux 环境具备 Node.js 和 Git 能力。 1. 配置 Node.js (使用 NVM)为了避免权限问题和灵活切换版本,使用 NVM (Node Version Manager) 安装 Node 20。 12345678910111213# 1. 安装 NVM (通过 Git 克隆,避开 curl 连接失败问题)cd ~git clone https://github.com/nvm-sh/nvm.git .nvm# 2. 写入环境变量echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bashrcecho '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" ...
Hexo 博客搭建与创作全指南一、 核心问题诊断 路径兼容性:Windows 用户名 username 带有单引号,导致 npm 默认 C 盘缓存路径解析崩溃。 工具 Bug:npm 8.19.4 逻辑漏洞导致 matches of null 报错。 版本冲突 (ESM):Hexo 8.x 的部分底层依赖在 Windows 下报 ERR_REQUIRE_ESM。 二、 环境修复 (避坑指南)1. 迁移 npm 路径 (避开 C 盘单引号)1234mkdir F:\Hexo\npm_globalmkdir F:\Hexo\npm_cachenpm config set prefix "F:\Hexo\npm_global"npm config set cache "F:\Hexo\npm_cache" 2. Node 版本管理 (nvm)使用 Node 20 以确保 npm 10.x 的稳定性: 12nvm install 20.18.0nvm use 20.18.0 三、 项目核心配置 (package.json)必须锁定 Hexo 7 ...







