当前位置: 首页 > news >正文

#去除知乎中“盐选”付费故事

添加油猴脚本,去除知乎中“盐选”付费故事

// ==UserScript==
// @name         盐选内容隐藏脚本
// @namespace    http://tampermonkey.net/
// @version      0.2
// @description  自动隐藏含有“盐选专栏”或“盐选”文字的回答卡片
// @author       YourName
// @match        *://*.zhihu.com/*
// @grant        none
// ==/UserScript==(function() {'use strict';// 配置const observerConfig = {childList: true,subtree: true,attributes: false};// 目标元素选择器和条件const targets = [{selector: 'div.KfeCollection-OrdinaryLabel-content',keyword: '盐选专栏'},{selector: 'p.KfeCollection-IntroCard-contentName-newStyle-pc',keyword: '盐选'}];const ancestorSelector = 'div.Card.TopstoryItem.TopstoryItem-isRecommend';// 隐藏卡片的通用函数const hideCard = (element) => {const ancestor = element.closest(ancestorSelector);if (ancestor) {ancestor.remove();}};// 检查节点并隐藏匹配的卡片const checkNode = (node) => {targets.forEach(target => {if (node.matches(target.selector) && node.textContent.includes(target.keyword)) {hideCard(node);}Array.from(node.querySelectorAll(target.selector)).forEach(element => {if (element.textContent.includes(target.keyword)) {hideCard(element);}});});};// 创建MutationObserver实例const observer = new MutationObserver(mutations => {mutations.forEach(mutation => {mutation.addedNodes.forEach(node => {if (node.nodeType === Node.ELEMENT_NODE) {checkNode(node);}});});});// 初始检查已存在的内容const initialCheck = () => {targets.forEach(target => {document.querySelectorAll(target.selector).forEach(element => {if (element.textContent.includes(target.keyword)) {hideCard(element);}});});};// 启动观察器observer.observe(document.documentElement, observerConfig);// 页面加载时执行初始检查window.addEventListener('load', initialCheck);
})();

二、附加解释

MutationObserver 是一个用于监听 DOM 树变化的 JavaScript API。它允许你实时检测网页中元素的变化(如添加、删除节点或属性修改),非常适合处理动态加载的内容,比如知乎页面中通过 AJAX 加载的推荐卡片。以下是对脚本中 MutationObserver 使用的详细解释:
  1. MutationObserver 的作用
    MutationObserver 提供了一种高效的方式来监听 DOM 变化,而无需轮询或依赖定时器。在你的脚本中,它用于检测知乎页面中新增的 DOM 节点(例如新加载的推荐卡片),并检查这些节点是否包含“盐选”相关内容,以便隐藏对应的卡片。
  2. 脚本中 MutationObserver 的使用
    以下是脚本中 MutationObserver 的具体实现和步骤:
    a. 创建 MutationObserver 实例
const observer = new MutationObserver(mutations => {mutations.forEach(mutation => {mutation.addedNodes.forEach(node => {if (node.nodeType === Node.ELEMENT_NODE) {checkNode(node);}});});
});

new MutationObserver(callback):创建一个观察者实例,callback 是一个函数,当 DOM 发生变化时会被调用。
回调函数:接收 mutations 参数(一个 MutationRecord 数组),每个 MutationRecord 描述一次 DOM 变化。
处理逻辑:
遍历 mutations 中的每个变化。
检查 mutation.addedNodes(新增的节点列表)。
只处理元素节点(node.nodeType === Node.ELEMENT_NODE),忽略文本节点等。
对每个新增元素调用 checkNode 函数,检查是否需要隐藏卡片。
b. 配置观察器

const observerConfig = {childList: true,subtree: true,attributes: false
};

observerConfig:定义观察器的监听范围和类型:
childList: true:监听目标节点及其子节点的添加或删除。
subtree: true:监听目标节点的所有后代节点(不仅是直接子节点)。
attributes: false:不监听属性变化(因为脚本只关心节点增删)。
这种配置确保脚本能捕捉页面中任何位置的新增节点(如动态加载的推荐卡片)。
c. 启动观察

observer.observe(document.documentElement, observerConfig);

observer.observe(target, config):开始观察指定的目标节点。
目标节点:document.documentElement(即 元素),覆盖整个页面。
配置:使用 observerConfig,监听整个 DOM 树的节点变化。
3. 为什么使用 MutationObserver
知乎页面是动态加载的,推荐卡片可能在页面滚动或刷新时通过 JavaScript 插入 DOM。如果只在页面加载时检查(initialCheck),会漏掉后续加载的内容。MutationObserver 的优势在于:
实时性:它能立即响应 DOM 变化,无需手动轮询。
高效性:相比定时器(如 setInterval),它只在 DOM 实际变化时触发,性能更好。
全面性:通过 subtree: true,可以监控整个页面,包括深层嵌套的动态内容。
4. 脚本中 MutationObserver 的工作流程
初始化:
创建 MutationObserver 实例,定义当 DOM 变化时检查新增节点的逻辑。
配置为监听整个 DOM 树的节点增删。
启动:
开始观察 元素,监控页面中任何新增节点。
处理变化:
当页面加载新内容(例如滚动时插入新卡片),MutationObserver 检测到 addedNodes。
对每个新增元素节点调用 checkNode,检查是否匹配目标选择器(div.KfeCollection-OrdinaryLabel-content 或 p.KfeCollection-IntroCard-contentName-newStyle-pc)和关键字(“盐选专栏”或“盐选”)。
如果匹配,找到祖先卡片(div.Card.TopstoryItem.TopstoryItem-isRecommend)并移除。
初始检查补充:
由于 MutationObserver 只监听变化,脚本还通过 window.addEventListener(‘load’, initialCheck) 检查页面加载时已存在的卡片。
5. 代码中的优化点
节点类型检查:脚本通过 node.nodeType === Node.ELEMENT_NODE 过滤非元素节点(如文本节点),提高效率。
选择器检查:checkNode 使用 matches 和 querySelectorAll,确保只处理符合条件的元素。
去重逻辑:通过 hideCard 函数统一卡片移除逻辑,避免重复代码。
6. 可能的改进
性能优化:如果页面变化频繁,可以限制观察范围(例如只观察某个容器如 div.Topstory-container),减少不必要的检查。
断开观察:在某些场景下(例如页面切换),可以通过 observer.disconnect() 停止观察以释放资源。
错误处理:添加 try-catch 块处理 DOM 操作中的潜在异常。
7. 总结
MutationObserver 在脚本中用于实时监控知乎页面中的 DOM 变化,捕获动态加载的推荐卡片,并检查是否包含“盐选”相关内容。通过配置 childList 和 subtree,它能高效地覆盖整个页面,确保新插入的卡片被及时处理。结合初始检查,脚本实现了对静态和动态内容的全面覆盖,完美适配知乎的动态加载场景。

相关文章:

#去除知乎中“盐选”付费故事

添加油猴脚本,去除知乎中“盐选”付费故事 // UserScript // name 盐选内容隐藏脚本 // namespace http://tampermonkey.net/ // version 0.2 // description 自动隐藏含有“盐选专栏”或“盐选”文字的回答卡片 // author YourName // mat…...

github 项目迁移到 gitee

1. 查看远程仓库地址 git remote -v 2. 修改远程仓库地址 确保 origin 指向你的 Gitee 仓库,如果不是,修改远程地址。 git remote set-url origin https://gitee.com/***/project.git 3. 查看本地分支 git branch 4. 推送所有本地分支 git p…...

2025年03月中国电子学会青少年软件编程(Python)等级考试试卷(五级)答案 + 解析

青少年软件编程(Python)等级考试试卷(五级) 分数:100 题数:38 一、单选题(共25题,共50分) 1. 以下哪个选项不是Python中的推导式?( ) A. 列表推导式 B. 字典推导式 C. 集合推导式 D. 元组推导式 正确答案:D 答案解析:Python中的推导式包括列表推导式、字典推导式…...

[Unity]-[UI]-[Prefab] 关于UGUI UI Prefab的制作技巧

从上到下,从外到里,多用空物体套壳 这个意思就是说在使用ugui时制作prefab时,要遵循“从上到下,从外到里,多用空物体套壳”的原则,好处就是后面好修改,并且可以复用不同的prefab子模块。且在布…...

【Reading Notes】(8.3)Favorite Articles from 2025 March

【March】 雷军一度登顶中国首富,太厉害了(2025年03月02日) 早盘,小米港股一路高歌猛进,暴涨4%,股价直接飙到52港元的历史新高。这一波猛如虎的操作,直接把雷军的身家拉到了2980亿元&#xff0c…...

2021-11-09 C++倍数11各位和为13

缘由c函数题找数字的-编程语言-CSDN问答 void 倍数11各位和为13(int n, int& b, int* h) {//缘由https://ask.csdn.net/questions/7559803?spm1005.2025.3001.5141b !(n % 11);while(n)*h n % 10, n / 10; }int a 1, b 1, c 0, d 0;while (a < 100){倍数11各位和…...

2025年03月中国电子学会青少年软件编程(Python)等级考试试卷(六级)真题

青少年软件编程&#xff08;Python&#xff09;等级考试试卷&#xff08;六级&#xff09; 分数&#xff1a;100 题数&#xff1a;38 答案解析&#xff1a;https://blog.csdn.net/qq_33897084/article/details/147341458 一、单选题(共25题&#xff0c;共50分) 1. 在tkinter的…...

Linux简介

一、Linux 简介 Linux 内核最初只是由芬兰人林纳斯托瓦兹&#xff08;Linus Torvalds&#xff09;在赫尔辛基大学上学时出于个人爱好而编写的。 Linux 是一套免费使用和自由传播的类 Unix 操作系统&#xff0c;是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CP…...

每天学一个 Linux 命令(22):pwd

​​可访问网站查看,视觉品味拉满: http://www.616vip.cn/22/index.html pwd 命令用于打印当前工作目录(Print Working Directory)的绝对路径,帮助用户快速确认自己在文件系统中的位置。虽然简单,但它是终端操作中不可或缺的基础命令,尤其在处理相对路径或脚本编写时尤为…...

Windows 11设置开机自动运行 .jar 文件

Windows 11设置开机自动运行 .jar 文件 打开启动文件夹&#xff1a; 按下 Win R&#xff0c;输入 shell:startup&#xff0c;回车。 此路径为当前用户的启动文件夹&#xff1a; C:\Users\<用户名>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup创…...

西门子 博途 软件 崩溃

西门子 博途 软件 编译/仿真 崩溃 是因为项目中OPC UA的接口问题 解决拌饭见 https://support.industry.siemens.com/cs/document/109971630/tia-portal-%E5%9C%A8%E7%BC%96%E8%AF%91-plc-%E6%97%B6%E5%B4%A9%E6%BA%83?dti0&dlzh&lcen-WW...

12芯束装光纤不同包层线颜色之间的排列顺序

为什么光纤线必须按照以下颜色顺序进行排序&#xff1f;这其实是为了防止光污染的问题&#xff0c;不同颜色在传递光时从包层表皮漏光传感到梳妆的其它纤芯上&#xff0c;会有光污染的问题&#xff0c;而为了减少并防止光污染的现象&#xff0c;所以在光通信之中&#xff0c;需…...

数据驱动、精准协同:高端装备制造业三位一体生产管控体系构建

开篇引入 鉴于集团全面推行生产运营体建设以及对二级单位生产过程管控力度逐步加强&#xff0c;某高端装备制造企业生产部长王总正在开展新的一年企业生产管控规划工作&#xff0c;为了能够更好地进行体系规划与建设应用&#xff0c;特邀请智能制造专家小智来进行讨论交流。 王…...

HAL详解

一、直通式HAL 这里使用一个案例来介绍直通式HAL&#xff0c;选择MTK的NFC HIDL 1.0为例&#xff0c;因为比较简单&#xff0c;代码量也比较小&#xff0c;其源码路径&#xff1a;vendor/hardware/interfaces/nfc/1.0/ 1、NFC HAL的定义 1&#xff09;NFC HAL数据类型 通常定…...

RAG知识库中引入MCP

MCP(Memory, Context, Planning)是一种增强AI系统认知能力的框架。将MCP引入RAG知识库可以显著提升系统的性能和用户体验。下面我将详细介绍如何实现这一整合。 MCP框架概述 MCP框架包含三个核心组件: Memory(记忆):存储和管理历史交互和知识Context(上下文):理解当…...

再读bert(Bidirectional Encoder Representations from Transformers)

再读 BERT&#xff0c;仿佛在数字丛林中邂逅一位古老而智慧的先知。初次相见时&#xff0c;惊叹于它以 Transformer 架构为罗盘&#xff0c;在预训练与微调的星河中精准导航&#xff0c;打破 NLP 领域长久以来的迷雾。而如今&#xff0c;书页间跃动的不再仅是 Attention 机制精…...

C# 单例模式

创建一个类 在类中定义方法 internal class Config {// 实现单利模式private static Config instance null;private Config() { }private static object Locker new object(); // 定义lock锁// 通过公有的方法 返回实力public static Config GetInstance(){// 空的自己构造…...

mainwidget.cpp:1741:21: error: use of undeclared identifier ‘mainTab‘

这个错误表明在你的代码中&#xff0c;mainTab 这个变量没有被正确声明或定义。这通常是因为以下原因之一&#xff1a; 变量未声明&#xff1a;mainTab 可能没有在类的成员变量中声明。 变量未初始化&#xff1a;mainTab 可能没有在构造函数中正确初始化。 作用域问题&#x…...

OpenCV day6

函数内容接上文&#xff1a;OpenCV day4-CSDN博客 , OpenCV day5-CSDN博客 目录 平滑&#xff08;模糊&#xff09; 25.cv2.blur()&#xff1a; 26.cv2.boxFilter(): 27.cv2.GaussianBlur()&#xff1a; 28.cv2.medianBlur(): 29.cv2.bilateralFilter()&#xff1a; 锐…...

MySQL:Join连接的原理

连接查询的执行过程&#xff1a; 确定第一个需要查询的表【驱动表】 选取代价最小的访问方法去执行单表查询语句 从驱动表每获取到一条记录&#xff0c;都需要到t2表中查找匹配的记录 两表连接查询需要查询一次t1表&#xff0c;两次t2表&#xff0c;在两表的连接查询中&…...

Linux MySQL版本升级(rpm安装方式)

一、背景 近期生产环境扫描发现MySQL的多个安全漏洞。目前厂商已经发布了升级补丁以修复此安全问题&#xff0c;补丁获取链接&#xff1a;https://www.oracle.com/security-alerts/cpuoct2024.html 二、升级注意事项 备份数据&#xff1a;升级前务必备份数据库。检查兼容性&…...

数字图像处理(膨胀与腐蚀)

腐蚀 核心原理&#xff1a;结构元四肢运算结果全为1&#xff0c;则结构元中心为1&#xff0c;否则为0。 怎么计算是否为1还是为0 结构元的值与前景的值进行与运算&#xff0c;如果结构元四肢的与运算结果全为1&#xff0c;则结构元中心为1&#xff0c;否则为0。 假设下图为结构…...

J值即正义——Policy Gradient思想、REINFORCE算法,以及贪吃蛇小游戏(三)

文章目录 前情提要谁的J值大呢?那么 ∇ θ J ( θ ) \nabla_\theta J(\theta) ∇θ​J(θ)要怎么求呢?构建loss函数**代码实现示例**(PyTorch伪代码):前情提要 上回咱说道,对于强化学习而言,J值即正义。 比如,你当了老板,你手下的两个高管,分别都为公司的发展提出了…...

pdfjs库使用3

.App { text-align: center; height: 100vh; display: flex; flex-direction: column; background-color: #f5f5f5; } /* PDF 查看器容器样式 */ .pdf-viewer { flex: 1; padding: 20px; max-width: 100%; margin: 0 auto; box-sizing: border-box; background-color: white;…...

transformer-词嵌入和位置嵌入详解

文章目录 1、介绍一下位置嵌入Positional Encoding、什么是Positional Encoding呢&#xff1f;为什么Transformer需要Positional Enconding? Transformer 的 Positional Encoding 是如何表达相对位置关系的&#xff1f;2、我来简单举个例子2.1 词向量&#xff1a;每个token都会…...

大模型本地部署之ollama安装及deepseek、qwen等模型下载操作

大模型本地部署之----ollama安装指南 最新版--下载方式 Download Ollama on macOS 因github下载较慢&#xff0c;可以网上搜索github加速工具下载 ----download后加版本号 例如: https://github.com/ollama/ollama/releases/download/v0.6.5/OllamaSetup.exe 通过网盘分享…...

ffprobe 输出 HEVC 码流 Level:标准的 “错位” 与分析的 “归位”

问题描述 最近用ffprobe分析HEVC/H265的码流,发现了与理论知识不符合的现象,比如针对一个H265的码流,用ffprobe输入命令 ffprobe -show_streams 1.h265 时,输入如下;可以看到 H265 的码流 Level 显示等于 93,打印值与标准理论值不符合,用其他工具分析此时 Level 等于 3.…...

线程池七个参数的含义

Java中的线程池里七个参数的以及其各自的含义 面试题&#xff1a;说一下线程池七个参数的含义&#xff1f; 所谓的线程池的 7 大参数是指&#xff0c;在使用 ThreadPoolExecutor 创建线程池时所设置的 7 个参数&#xff0c;如以下源码所示&#xff1a; public ThreadPoolExe…...

EnlightenGAN:低照度图像增强

简介 简介:记录如何使用EnlightenGAN来做低照度图像增强。该论文主要是提供了一个高效无监督的生成对抗网络,通过全球局部歧视器结构,一种自我调节的感知损失融合,以及注意机制来得到无需匹配的图像增强效果。 论文题目:EnlightenGAN: Deep Light Enhancement Without P…...

内存函数和动态内存管理

目录 一、memcpy库函数介绍 1. memcpy的使用 2. memcpy的模拟 二、memmove库函数介绍 1. memmove的使用 2. memmove的模拟 三、memset库函数介绍 四、memcmp库函数介绍 五、动态内存中malloc和free 1. malloc 2. free 六、动态内存中calloc和realloc 1. calloc 2. realloc 七、…...

计算机网络 - 在浏览器中输入 URL 地址到显示主页的过程?

第一步&#xff0c;浏览器通过 DNS 来解析 URL&#xff0c;得到相应的 ip 地址&#xff08;到哪里找) 和 方法&#xff08;做什么&#xff09; 第二步&#xff0c;浏览器于服务器建立 TCP 三次握手连接 第三步&#xff0c;建立好连接后&#xff0c;浏览器会组装 HTTP 请求报文…...

Android Studio 常见报错

错误提示&#xff1a; Your build is currently configured to use incompatible Java 21.0.3 and Gradle 6.7.1. Cannot sync the project. 原因&#xff1a; Java JDK和gradle 版本不匹配 两个角度修改&#xff1a; 1.修改gradle 版本 2.修改JDK版本 Gradle 下载 https:…...

RT-DETR源码学习bug记录

事情是这样的&#xff0c;我最近想学习RT-DETR的源码&#xff0c;那就开始吧&#xff01; 1. 找到官网&#xff0c;找到pytorch版本。 https://github.com/lyuwenyu/RT-DETR/tree/main 2.只想下载一个子目录&#xff0c;方法&#xff1a; https://download-directory.githu…...

数据仓库分层架构解析:从理论到实战的完整指南​​

数据仓库分层是构建高效数据体系的核心方法论。本文系统阐述ODS、DWD、DWS、ADS四层架构的设计原理&#xff0c;结合电商用户行为分析场景&#xff0c;详解各层功能及协作流程&#xff0c;并给出分层设计的原则与避坑指南&#xff0c;帮助读者掌握分层架构的落地方法。 一、为什…...

基于ubuntu24.10安装NACOS2.5.1的简介

基于ubuntu24.10安装NACOS2.5.1的简介 官方网站地址&#xff1a; https://nacos.io 可访问nacos站点 https://nacos.io/zh-cn/ 2025年04月记录发布 V2.5.1 版本 一、环境预准备 64 bit JDK 1.8&#xff1b; sudo apt update sudo apt install openjdk-8-jdk sudo apt upda…...

【Triton 教程】triton_language.full

Triton 是一种用于并行编程的语言和编译器。它旨在提供一个基于 Python 的编程环境&#xff0c;以高效编写自定义 DNN 计算内核&#xff0c;并能够在现代 GPU 硬件上以最大吞吐量运行。 更多 Triton 中文文档可访问 →https://triton.hyper.ai/ triton.language.full(shape, …...

MARA/MARC表 PSTAT字段

最近要开发一个维护物料视图的功能。其中PSTAT字段是来记录已经维护的视图的。这里记录一下视图和其对应的字母。 MARA还有个VPSTA&#xff08;完整状态&#xff09;字段&#xff0c;不过在我试的时候每次PSTAT出现一个它就增加一个&#xff0c;不知道具体是为什么。 最近一直…...

目标检测中的混淆矩阵

一直很疑惑YOLO的这个目标检测 混淆矩阵 🎯 假设任务:检测三种动物(猫、狗、羊) 我们使用一个目标检测模型对图像进行了预测,并收集了如下结果: ✅ 模型预测结果(带类别和框) vs 🟩真实框: 编号真实类别是否被检测到IOU是否合格预测类别备注1猫是✅猫✔️ 正确(…...

前端如何构建跨平台可复用的业务逻辑层(Web、App、小程序)

目录 第一章:跨平台开发的现状与技术选型分析 跨平台技术生态的全景概览 跨平台开发中业务逻辑层的共性需求 不同技术栈对业务逻辑复用的支持程度比较 技术选型中的权衡与思考 第二章:业务逻辑层的核心设计原则与架构理念 设计原则:构建高效业务逻辑层的基础 架构理念…...

day1-小白学习JAVA---JDK安装和环境变量配置(mac版)

JDK安装和环境变量配置 我的电脑系统一、下载JDK1、oracle官网下载适合的JDK安装包&#xff0c;选择Mac OS对应的版本。 二、安装三、配置环境变量1、终端输入/usr/libexec/java_home -V查询所在的路径&#xff0c;复制备用2、输入ls -a3、检查文件目录中是否有.bash_profile文…...

使用VHD虚拟磁盘安装双系统,避免磁盘分区

前言 很多时候&#xff0c;我们对现在的操作系统不满意,就想要自己安装一个双系统 但是安装双系统又涉及到硬盘分区,非常复杂,容易造成数据问题 虚拟机的话有经常用的不爽,这里其实有一个介于虚拟机和双系统之间的解决方法,就是使用虚拟硬盘文件安装系统. 相当于系统在机上…...

数据结构之稀疏矩阵与三元组表示法

稀疏矩阵的概念 在实际应用中&#xff0c;我们经常会遇到一些矩阵&#xff0c;其中大部分元素都是零&#xff0c;只有少量的非零元素。这种矩阵被称为稀疏矩阵。例如&#xff0c;在图像处理、网络分析等领域&#xff0c;稀疏矩阵经常出现。如果使用传统的二维数组来存储稀疏矩…...

微前端框架QianKun

以下是关于 QianKun微前端框架 的系统知识梳理,涵盖核心概念、核心功能、应用间通信、性能优化等内容: 一、QianKun基础概念与核心功能 微前端概念 定义:将单体前端应用拆分为多个独立开发、部署的子应用,通过主应用统一集成。优势:技术栈无关、独立部署、团队自治、增量…...

记录学习的第二十九天

还是力扣每日一题。 本来想着像昨天一样两个循环搞定的&#xff0c;就下面&#x1f447;&#x1f3fb; 不过&#xff0c;结果肯定是超时啦&#xff0c;中等题是吧。 正确答案是上面的。 之后就做了ls题单第一部分&#xff0c;首先是定长滑窗问题 这种题都是有套路的&#xff0…...

C语言复习笔记--字符函数和字符串函数(上)

在编程的过程中&#xff0c;我们经常要处理字符和字符串&#xff0c;为了⽅便操作字符和字符串&#xff0c;C语⾔标准库中提供了 ⼀系列库函数&#xff0c;接下来我们就学习⼀下这些函数。 首先来看下字符函数. 字符分类函数 C语⾔中有⼀系列的函数是专⻔做字符分类的&#xf…...

SQL:聚合函数(Aggregate Functions)

目录 第一性原理出发思考 ——我们为什么需要聚合函数&#xff1f; 什么是聚合函数&#xff1f; 常见聚合函数 实例讲解 &#x1f538; 1. COUNT() —— 计数 &#x1f538; 2. MAX() / MIN() —— 最大 / 最小值 &#x1f538; 3. SUM() —— 求和 &#x1f538; 4. …...

Linux工具学习之【gcc/g++】

&#x1f4d8;前言 书接上文&#xff0c;我们已经学习了 Linux 中的编辑器 vim 的相关使用方法&#xff0c;现在已经能直接在 Linux 中编写C/C代码&#xff0c;有了代码之后就要尝试去编译并运行它&#xff0c;此时就可以学习一下 Linux 中的编译器 gcc/g 了&#xff0c;我们一…...

5.0.2 颜色16进制格式含义 控件template中path的使用

本例要实现的目标如下: 1.右上角的按钮是X的形式(使用path用两根直线绘制) 2.鼠标移动上去以及鼠标点击背景色都变化。(使用不同透明度的白色来区分表示) 一、关于颜色的表示 在C# WPF和WinForms中,Background 属性用于设置控件的背景颜色,可以使用16进制(HEX)格式来表…...

【sharding-jdbc配置以及例子】

一、一个数据库不同的表(分表) &#xff08;1&#xff09;POM <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId…...

OJ笔试强训_1至24天

OJ笔试强训 Day01 [NOIP2010]数字统计_牛客题霸_牛客网 点击消除_牛客题霸_牛客网 两个数组的交集_牛客题霸_牛客网 Day02 牛牛的快递_牛客题霸_牛客网 最小花费爬楼梯_牛客题霸_牛客网 数组中两个字符串的最小距离__牛客网 Day03 简写单词_牛客题霸_牛客网 dd爱框框_…...