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

Rust 的征服:从系统编程到全栈开发的 IT 新宠

在这里插入图片描述

文章目录

    • Rust 的本质:性能与安全的完美平衡
    • Rust 的演进:从 Mozilla 的实验到全球热潮
    • 核心技术:Rust 的杀手锏与生态
      • 所有权与生命周期
      • 高并发:无畏线程
      • Cargo:现代构建工具
      • 生态繁荣:Crates.io
    • Rust 的杀手级应用
      • 系统开发
      • Web 后端
      • 区块链
      • 嵌入式开发
      • AI 与科学计算
    • 中国在 Rust 中的突围
      • 中国的优势
    • 挑战与争议:Rust 的试金石
      • 学习曲线
      • 编译时间
      • 生态成熟度
      • 社区分裂
      • 替代威胁
    • 未来展望:Rust 的下一幕
      • 全栈统治
      • AI 加速
      • 系统替代
    • 尾声:Rust 点燃的 IT 新热潮

在信息技术(IT)的浩瀚星空中,一颗新星正以惊艳的速度崛起 —— Rust。2025 年,这门诞生于 2010 年的编程语言,已经从系统编程的 “小众玩家” 蜕变为席卷全栈开发的 “全能王者”。凭借其无与伦比的性能、安全性和开发体验,Rust 不仅征服了 Linux 内核开发者,还吸引了 Web 开发、区块链乃至 AI 领域的目光。从初创公司到科技巨头如微软、AWS,Rust 正在以燎原之势点燃 IT 行业的未来。

Rust 为何能在竞争激烈的编程语言中脱颖而出?它如何颠覆传统开发模式?它又将如何重塑 IT 生态?本文将带你深入探索 Rust 的核心优势、技术魅力、应用场景,以及它面临的挑战与前景。无论你是系统工程师、Web 开发者,还是对技术热榜充满好奇的探索者,这篇关于 Rust 的全面剖析都将让你热血沸腾。让我们一起见证这场从内存安全到全栈征服的 IT 新篇章!

在这里插入图片描述

Rust 的本质:性能与安全的完美平衡

Rust 的核心魅力在于,它解决了编程界的 “千年难题”:如何在保证高性能的同时,确保内存安全?传统语言如 C/C++ 以性能著称,但内存管理依赖手动操作,稍有不慎就可能引发缓冲区溢出或野指针问题。而 Python、Java 等高级语言虽安全,却因垃圾回收(GC)牺牲了性能。

Rust 另辟蹊径,引入了所有权(Ownership)和借用检查器(Borrow Checker)的机制,在编译期就杜绝内存错误。一个简单示例:

fn main() {let s1 = String::from("hello");let s2 = s1;  // s1 的所有权转移给 s2// println!("{}", s1);  // 错误:s1 已失效println!("{}", s2);  // 输出:hello
}

这里,Rust 通过所有权规则避免了双重释放(Double Free)问题,无需 GC 也能确保安全。这种 “零成本抽象” 的设计,让 Rust 兼具 C++ 的速度和 Python 的安心,成为开发者的梦中情语言。

Rust 的演进:从 Mozilla 的实验到全球热潮

Rust 的诞生源于 2010 年,由 Mozilla 发起,旨在为 Firefox 浏览器打造一个更快、更安全的引擎。2015 年,Rust 1.0 发布,凭借其稳定性赢得首批拥趸。2021 年,Linux 内核宣布接受 Rust 代码,成为其崛起的里程碑。同年,AWS、微软、谷歌等巨头纷纷拥抱 Rust,用于云计算和系统开发。

到 2025 年,Rust 的热度达到巅峰。Stack Overflow 开发者调查连续五年将其评为 “最受喜爱的语言”,GitHub 上的 Rust 项目增长率超 50%。中国的 Rust 社区也异常活跃,阿里云用 Rust 优化数据库引擎,腾讯将其用于游戏服务器开发。Rust 已不再是系统编程的专属,而是渗透到 Web、区块链、AI 等全栈领域,成为 CSDN 热榜的常客。这种从边缘到主流的演进,证明了 Rust 不仅是一门语言,更是一场开发哲学的革命。

核心技术:Rust 的杀手锏与生态

Rust 的成功离不开其技术内核和丰富生态,以下是几个关键亮点:
在这里插入图片描述

所有权与生命周期

Rust 通过所有权和借用规则,确保内存安全。一个复杂示例:

fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {if x.len() > y.len() { x } else { y }
}
fn main() {let s1 = String::from("Rust");let result = longest(&s1, "Python");println!("较长的字符串: {}", result);
}

这里,生命周期 'a 保证了返回值的有效性,避免悬垂指针。

高并发:无畏线程

Rust 的并发模型避免了数据竞争。例如,一个线程安全的计数器:

use std::sync::Mutex;
use std::thread;fn main() {let counter = Mutex::new(0);let mut handles = vec![];for _ in 0..10 {let handle = thread::spawn({let counter = counter.clone();move || {let mut num = counter.lock().unwrap();*num += 1;}});handles.push(handle);}for handle in handles { handle.join().unwrap(); }println!("计数结果: {}", *counter.lock().unwrap());
}

这展示了 Rust 在并发中的安全性与简洁性。

Cargo:现代构建工具

Rust 的包管理器 Cargo 简化了依赖管理。例如,创建一个 Web 服务:

cargo new webapp --bin
cd webapp
cargo add actix-web

然后编写一个简单的 HTTP 服务器:

use actix_web::{web, App, HttpServer, HttpResponse};async fn hello() -> HttpResponse {HttpResponse::Ok().body("Hello, Rust!")
}#[actix_web::main]
async fn main() -> std::io::Result<()> {HttpServer::new(|| App::new().route("/", web::get().to(hello))).bind("127.0.0.1:8080")?.run().await
}

这展示了 Rust 在 Web 开发的便捷性。

生态繁荣:Crates.io

Rust 的生态库(如 tokio、serde)覆盖异步、网络、序列化等领域,支持全栈开发。这些特性让 Rust 从底层系统到上层应用无往不利。

Rust 的杀手级应用

Rust 的实用性在各领域大放异彩,以下是几个热门案例:

系统开发

微软用 Rust 重写 Windows 内核组件,2025 年其内存错误率降低 70%,系统稳定性显著提升。

Web 后端

Discord 用 Rust 重构服务端,处理每秒百万请求,延迟降低 50%,成为 Rust Web 开发的标杆。

区块链

Solana 区块链用 Rust 开发核心节点,交易吞吐量达 6.5 万 TPS,远超以太坊,吸引了大量开发者。

嵌入式开发

一家智能家居公司用 Rust 开发物联网设备固件,功耗降低 20%,安全性提升 30%。

AI 与科学计算

Rust 的 ndarray 库支持高性能矩阵运算,2025 年一家 AI 初创用其加速模型推理,性能逼近 C++。

这些案例表明,Rust 不仅是系统编程的王者,更是全栈开发的热榜明星。

中国在 Rust 中的突围

中国 Rust 社区在 2025 年异常活跃。阿里云用 Rust 优化 PolarDB 数据库,查询性能提升 40%。腾讯将 Rust 用于《王者荣耀》服务器开发,响应时间缩短 30%。华为则在鸿蒙 OS 中嵌入 Rust 组件,提升了设备安全性。

中国的优势

  • 开源热情:Rust China 社区举办多场线下活动,推动技术普及。
  • 产业需求:5G、物联网和 AI 对高性能语言的需求催生了 Rust 热潮。
  • 政策支持:《软件产业高质量发展计划》鼓励使用安全高效的语言。

例如,阿里云的一个 Rust 项目优化了分布式锁:

use std::sync::Arc;
use tokio::sync::Mutex;async fn acquire_lock(lock: Arc<Mutex<i32>>) {let mut locked = lock.lock().await;*locked += 1;
}

这展示了 Rust 在分布式系统中的高效性。

挑战与争议:Rust 的试金石

在这里插入图片描述

Rust 虽风头正劲,但也面临挑战:

学习曲线

借用检查器虽安全,但对新手不友好,编译错误可能让人抓狂。

编译时间

Rust 的编译速度较慢,大型项目可能耗时数分钟,影响开发效率。

生态成熟度

相比 Python 或 Java,Rust 的部分领域库(如 GUI)仍不完善。

社区分裂

Rust 的快速迭代引发争议,例如 2024 年一次语法调整让老代码需重构,引发开发者不满。

替代威胁

Zig、Go 等语言也在抢占高性能市场,Rust 需保持差异化优势。

这些问题提醒我们,Rust 的征服之路并非坦途。

未来展望:Rust 的下一幕

到 2030 年,Rust 可能成为主流语言之一。以下是几个趋势:

全栈统治

WebAssembly(WASM)将 Rust 推向浏览器端,挑战 JavaScript 的地位。

AI 加速

Rust 的高性能将助力 AI 模型部署,尤其在边缘计算场景。

系统替代

Rust 可能逐步取代 C/C++,成为操作系统开发的首选。

对于开发者,学习 Rust(如通过 Rustlings 教程)将成为新风口。一个简单 WebAssembly 示例:

use wasm_bindgen::prelude::*;#[wasm_bindgen]
pub fn greet(name: &str) -> String {format!("Hello, {}!", name)
}

这展示了 Rust 在浏览器中的潜力。

尾声:Rust 点燃的 IT 新热潮

Rust 是一场从系统编程到全栈开发的征服之旅。它用内存安全点燃了性能的希望,用现代设计重塑了开发体验。从 Linux 内核到 Web 服务,Rust 正在以惊人速度席卷 IT 世界,成为 CSDN 热榜的常驻嘉宾。

你是否准备好加入 Rust 的狂潮?它会如何改变你的开发方式或职业?是更安全的系统,还是更高效的 Web 应用?欢迎在评论区分享你的畅想,一起见证 Rust 如何成为 IT 的新宠!

相关文章:

Rust 的征服:从系统编程到全栈开发的 IT 新宠

文章目录 Rust 的本质&#xff1a;性能与安全的完美平衡Rust 的演进&#xff1a;从 Mozilla 的实验到全球热潮核心技术&#xff1a;Rust 的杀手锏与生态所有权与生命周期高并发&#xff1a;无畏线程Cargo&#xff1a;现代构建工具生态繁荣&#xff1a;Crates.io Rust 的杀手级应…...

【力扣hot100题】(086)乘积最大子数组

感觉题目越来越难&#xff0c;这题不看答案真的想不到一点。 一开始绕了不少弯路&#xff0c;甚至想将每一个子数组的积全部求出来比较…… 答案的方法有点难懂。 方法如下&#xff1a;维护两个数&#xff0c;分别是目前为止最大数和最小数&#xff0c;最大数一般来说是正数…...

编译器bug ?

## 问题描述 两个结构几乎相同的模板实现&#xff0c;一个能正常工作&#xff0c;另一个在 VS2019 和 GCC 中都会报错。 ## 最小化测试代码 // bug_report.cpp #include <type_traits> #include <string>template<typename T> struct Type2Type { using t…...

算法刷题记录——LeetCode篇(1.8) [第71~80题](持续更新)

更新时间&#xff1a;2025-04-10 算法题解目录汇总&#xff1a;算法刷题记录——题解目录汇总技术博客总目录&#xff1a;计算机技术系列博客——目录页 优先整理热门100及面试150&#xff0c;不定期持续更新&#xff0c;欢迎关注&#xff01; 72. 编辑距离 给你两个单词 wo…...

leetcode68.左右文本对齐

思路源自 leetcode-字符串篇 68题 文本左右对齐 难度高的模拟类型题目&#xff0c;关键点在于事先知道有多少单词要放在本行并且还要知道本行是不是最后一行&#xff08;最后一行需要全部单空格右对齐&#xff0c;不是最后一行就空格均摊&#xff09;&#xff0c;非最后一行的空…...

leetcode:905. 按奇偶排序数组(python3解法)

难度&#xff1a;简单 给你一个整数数组 nums&#xff0c;将 nums 中的的所有偶数元素移动到数组的前面&#xff0c;后跟所有奇数元素。 返回满足此条件的 任一数组 作为答案。 示例 1&#xff1a; 输入&#xff1a;nums [3,1,2,4] 输出&#xff1a;[2,4,3,1] 解释&#xff1a…...

Java抽象类与抽象方法详解

一、抽象类的作用与定义 1. 核心作用 ​​设计意图​​&#xff1a;当多个子类具有共性行为但具体实现不同时&#xff0c;通过抽象类强制规范子类的实现格式。 ​​典型场景​​&#xff1a; // 定义抽象图形类 public abstract class Shape {// 抽象方法&#xff1a;计算面…...

QScrCpy源码解析(3)监听手机usb端口

采用的技术方式为adb adb可以通过命令行达到控制安卓手机的目的 大致思路为 1在界面显示的时候初始化一个定时器&#xff0c;不断地查询当前设备连接到的手机安卓设备 使用的adb指令为 adb devices 定时器代码 connect(&m_autoUpdatetimer, &QTimer::timeout, th…...

go-zero学习笔记(六)---gozero中间件介绍

​ 1. 中间件分类 gozero默认中间件通过在api文件中创建的中间件通过server.Use(middleware Middleware)创建的中间件2. 中间件介绍 2.1 gozero默认中间件 默认中间件包括如下&#xff1a;在gozero中对应的代码为&#xff1a; // 文件位置&#xff1a;github.com\zeromicro\g…...

基于FPGA实现BPSK 调制

目录 一、 任务介绍二、基本原理三、基于FPGA实现BPSK 调制四、源码 一、 任务介绍 BPSK 调制在数字通信系统中是一种极重要的调制方式&#xff0c;它的抗干扰噪声性能及通频带的利用率均优先于 ASK 移幅键控和 FSK 移频键控。因此&#xff0c;PSK 技术在中、高速数据传输中得…...

包含网络、平台、数据及安全四大体系的智慧快消开源了

智慧快消视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒&#xff0c;省去繁琐重复的适配流程&#xff0c;实现芯片、算法、应用的全流程组合&#xff0c;从而大大减少企业级应用约95%的开发成本。国产化人工智能“…...

基于AWS的大模型调用场景:10大成本优化实战方案

大模型训练与推理是AI领域的计算密集型场景&#xff0c;如何在AWS上实现高性能与低成本的双重目标&#xff1f;本文从实例选型、弹性伸缩、存储优化等角度&#xff0c;分享10个经过验证的AWS成本优化策略&#xff0c;帮助企业节省30%以上成本。 一、大模型场景的成本痛点分析 计…...

Human3.6M 解析3d pose标注 h36m

目录 解析pkl 并可视化 解析h5格式: view_h36m_h5_ok.py nlf 预测并计算指标mpje 解析pkl 并可视化 import os import pickleimport cv2 import imageio import numpy as npif __name__ == __main__:# pkl_path=r"E:\data\pose_3d\human3.6mtoolbox\annot\h36m_valid…...

设计模式-观察者模式和发布订阅模式区别

文章目录 其他不错的文章 二者有类似的地方&#xff0c;也有区别。 引用的文章说的已经比较清楚了&#xff0c;这里只列出对比图。 对比点观察者模式发布订阅模式中间人角色无事件中心&#xff0c;观察者直接订阅目标有事件中心&#xff0c;发布者与订阅者通过事件中心通信关系…...

Python proteinflow 库介绍

ProteinFlow是一个开源的Python库,旨在简化蛋白质结构数据在深度学习应用中的预处理过程。以下是其详细介绍: 功能 数据处理:支持处理单链和多链蛋白质结构,包括二级结构特征、扭转角等特征化选项。 数据获取:能够从Protein Data Bank (PDB)和Structural Antibody Databa…...

羽绒服选购

羽绒服怎么选&#xff1f; 看吊牌 填充物含绒子量充绒克数 填充物&#xff1a; 鹅绒>鸭绒>鹅鸭混合绒 中国90%羽绒服都是鸭绒&#xff0c;鹅绒产量少&#xff0c;且拔毛方式不人道&#xff0c;所以价格更高 白鸭绒和黑鸭绒区别不大&#xff0c;但是白羽绒服只能用白鸭绒…...

使用注解@RequestBody变红的解决问题

解决办法&#xff1a; package com.takeout.controller;import com.takeout.common.R; import com.takeout.entity.Employee; import com.takeout.service.EmployeeService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowire…...

Multi-Agent Routing Value Iteration Network(多智能体路由值迭代网络)论文阅读

标题&#xff1a;Multi-Agent Routing Value Iteration Network(多智能体路由值迭代网络) 作者&#xff1a;Quinlan Sykora&#xff0c; Mengye Ren&#xff0c; Raquel Urtasun 单位: Uber 发表期刊&#xff1a;AI 发表时间&#xff1a;2020年 论文研究主题归类&#xf…...

商品详情 API 返回数据字段说明

京东商品详情 API 返回的数据是一个结构化的 JSON 对象&#xff0c;包含了商品的多个关键字段。以下是一些常见的返回值字段及其说明&#xff1a; 1. 商品基本信息 num_iid&#xff1a;商品唯一标识符。 title&#xff1a;商品标题。 desc_short&#xff1a;商品简短描述。 …...

数据结构 | 证明链表环结构是否存在

❤个人主页&#xff1a; 链表环结构 0.前言1.环形链表&#xff08;基础&#xff09;2.环形链表Ⅱ&#xff08;中等&#xff09;3.证明相遇条件及结论3.1 问题1特殊情况证明3.2 问题1普适性证明 0.前言 在这篇博客中&#xff0c;我们将深入探讨链表环结构的检测方法&#xff1a;…...

AI Agent类开发应避免Python独舞,奏响多技术交响曲

、 &#xff08;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff09;。 一、Python的局限&#xff1a;从“万能”到“单薄”的技术困境 1.1 Python的统治地位与暗礁 Python在AI…...

git基本使用

git 默认情况下&#xff0c;克隆的远程仓库会被命名为 origin git remote remove origin # 移除默认的远程仓库 origingit remote add origin https://github.com/CS144/minnow.git # 添加一个新的远程仓库 origin&#xff0c;指向自己的 GitHub 仓库git branch -M main #将当…...

解决IDEA中自动生成返回值带final修饰的问题

修改配置文件&#xff1a; 1、在settings选项下&#xff0c;Editor–Code Style–Java–Code Generation&#xff0c;确保红框内的两项不被勾选 2、在自动生成的地方,仔细观看final下面带有下划线,说明此处存在快捷键,这时按下ALT F, 选项框会取消勾选Declare final. 回车接…...

Java中的Exception和Error有什么区别?还有更多扩展

概念 在Java中&#xff0c;Exception和Error都是Throwable的子类&#xff0c;用于处理程序中的错误和异常情况。 然而&#xff0c;它们在用途和处理方式上有显著的不同&#xff1a; Exception&#xff1a; 用于表示程序在正常运行过程中可能出现的错误&#xff0c;如文件未找…...

什么是中性线、零线、地线,三相四线制如何入户用电

在变压器三相电侧&#xff0c;按照星形连接法&#xff0c;有一个中心点&#xff0c;这根线引出来的线接不接地&#xff1a;不接地就是中性线&#xff0c;接地就是零线 下面就是没有接地&#xff1a;中性线 接地了以后就可以叫做零线了 三相电在高压输电的时候是没有零线的&a…...

不用额外下载jar包,idea快速查看使用的组件源码

以nacos为例子&#xff0c;在idea中引入了nacos依赖&#xff0c;就可以查看源码了。 2. idea选择open&#xff08;不关闭项目直接选择file-open也可以&#xff09;, 在maven的仓库里找到对应的包&#xff0c;打开 2.idea中选择 jar包&#xff0c;选择 add as library 3.这样j…...

Ant Design X 和 Element-Plus-X

Ant Design X 是 Ant Design 的全新 AGI 组件库&#xff0c;旨在帮助开发者更轻松地研发 AI 产品用户界面。提供AI交互所需的Attachments、Sender、ThoughtChain等组件&#xff0c;以及useXAgent、XStream等hooks。 具备支持Vue和React两个版本 React&#xff1a; https://gi…...

jetson配置yolov5(tensor加速版)出现的问题(killed+tensor+~)

1.在cmake生成engine引擎文件时&#xff0c;出现一系列报错 make [ 20%] Building NVCC (Device) object CMakeFiles/myplugins.dir/myplugins_generated_yololayer.cu.o /home/lin/yolov5-4.0/yolov5/yololayer.h(54): error: member function declared with "override&…...

【华为战报】2025年3月 考试战报!

原创&#xff1a;厦门微思网络 了解更多往期考试→点 【考试战报】 华为认证 HCIA 3月 微思 | HCIA 考试战报 学员成绩单 华为认证 HCIP 3月 微思 | HCIP 考试战报 学员成绩单 学员证书 华为认证 HCIE 3月 微思 | HCIE 考试战报 学员成绩单 学员证书 华为认证 最新开班 厦门面授…...

daz3d ERC Freeze to Morph Target 和 另存为 Morph Asset(s)

. ERC 冻结至变形目标 (ERC Freeze to Morph Target) 核心目标&#xff1a;将骨架的调整与自定义造型的滑块关联起来。 详细解释&#xff1a; 当你创建一个自定义造型&#xff08;Morph&#xff09;并调整了骨架&#xff08;Rigging&#xff09;以适应这个新造型后&#xff…...

【网络安全 | 项目开发】Web 安全响应头扫描器(提升网站安全性)

未经许可,不得转载。 文章目录 项目简介项目功能示例输出技术栈:简单代码结构可选扩展功能项目简介 Web 安全响应头扫描器(Security Headers Checker),一个安全合规工具,用于检测目标网站是否配置了关键的 HTTP 安全头部,帮助开发者提升网站基础安全性。 项目功能 1.…...

Python - 爬虫-网页抓取数据-库requests

requests库是一个功能强大的HTTP库&#xff0c;用于发送各种HTTP请求&#xff0c;如GET、POST、PUT、DELETE等。 requests官网&#xff1a;Requests: HTTP for Humans™ — Requests 2.32.3 documentation 使用requests可以模拟浏览器的请求&#xff0c;比起之前用的urllib&a…...

antv x6使用(支持节点排序、新增节点、编辑节点、删除节点、选中节点)

项目需要实现如下效果流程图&#xff0c;功能包括节点排序、新增节点、编辑节点、删除节点、选中节点等 html部分如下&#xff1a; <template><div class"MindMapContent"><el-button size"small" click"addNode">新增节点&…...

Nginx 是什么?Nginx高并发架构拆解指南

你是一个程序员&#xff0c;你在电脑上编辑了一段文本&#xff0c;将它保存为 txt 文件。将它拖到浏览器打开&#xff0c;就能看到文件里的内容。 但这看起来太过单调&#xff0c;为了让画面更丰富&#xff0c;我们定个规则&#xff0c;在文本边上加个两个h1符号&#xff0c;文…...

JS forEach方法

遍历数组...

可道云支持群晖的docker安装了:全网唯一支持onlyoffice安装说明

在群晖系统上部署可道云面临显著的技术门槛。DSM7.2版本因不兼容Apache2.2等组件&#xff0c;用户需改用Docker手动配置环境&#xff0c;涉及PHP扩展、SQLite3适配及存储路径映射等复杂操作&#xff0c;且安装后需通过WebStation调整脚本语言参数&#xff0c;对非专业用户极不友…...

V4L2杂谈

V4L2的开发手册 在做v4l2的开发的时候&#xff0c; 可以使用v4l2-ctl命令协助调试和软件开发。关于linux多媒体开发可以参考链接&#xff1a;https://www.linuxtv.org/wiki/index.php/Main_Page关于v4l2的api接口开发可以参考&#xff1a;https://linuxtv.org/docs.php在linux…...

Java—HTML:3D形变

今天我要介绍的是在Java HTML中CSS的相关知识点内容之一&#xff1a;3D形变&#xff08;3D变换&#xff09;。该内容包含透视&#xff08;属性&#xff1a;perspective&#xff09;&#xff0c;3D变换&#xff0c;3D变换函数以及案例演示&#xff0c; 接下来我将逐一介绍&…...

Zotero PDF Translate 翻译插件使用OpenAI API配置教程

PDF Translate&#xff1a;提升 Zotero 内置 PDF 阅读器的翻译功能 “PDF Translate” 是一款为 Zotero 设计的插件&#xff0c;旨在方便用户在 Zotero 内置的 PDF 阅读器中进行划词或段落翻译&#xff0c;辅助阅读外文文献。 一、 安装插件 下载插件&#xff1a; 访问 PDF T…...

[raspberrypi 0w and respeaker 2mic]实时音频波形

0. 环境 ubuntu22主机&#xff0c; 192.168.8.162&#xff0c; raspberry 0w&#xff0c; 192.168.8.220 路由器 1. 树莓派 # rpi - send.py # 或者命令行&#xff1a;arecord -D plughw:1,0 -t wav -f cd -r 16000 -c 2 | nc 192.168.8.162 12345import socket imp…...

go-zero自动生成repository文件和测试用例

文章目录 repository的作用自动生成repository文件repo模板文件repo_test模板文件生成结果运行测试用例 repository的作用 在软件开发中&#xff0c;尤其是在采用分层架构或者领域驱动设计&#xff08;DDD&#xff09;的项目里&#xff0c;repository&#xff08;仓库&#xf…...

红宝书第三十六讲:持续集成(CI)配置入门指南

红宝书第三十六讲&#xff1a;持续集成&#xff08;CI&#xff09;配置入门指南 资料取自《JavaScript高级程序设计&#xff08;第5版&#xff09;》。 查看总目录&#xff1a;红宝书学习大纲 一、什么是持续集成&#xff1f; 持续集成&#xff08;CI&#xff09;就像咖啡厅的…...

【Java学习】如何利用AI学习Java语言开发(二)

利用AI辅助学习Java语言开发可以显著提高学习效率、解决实际问题和优化代码质量。以下是结合AI工具和方法的系统化学习路径: 一、AI辅助学习基础阶段 智能交互式学习平台 使用Codecademy(AI驱动版)或JetBrains Academy的Java课程,AI会根据你的代码实时提供修正建议 尝试Ch…...

【C++算法】53.链表_重排链表

文章目录 题目链接&#xff1a;题目描述&#xff1a;解法C 算法代码&#xff1a; 题目链接&#xff1a; 143. 重排链表 题目描述&#xff1a; 解法 模拟 找到链表的中间节点 快慢双指针 把后面的部分逆序 双指针&#xff0c;三指针&#xff0c;头插法 合并两个链表 合并两个有…...

Ubuntu安装Docker引擎

安装Docker引擎 一、注意事项 防火墙兼容性 若使用 ufw​ 或 firewalld​&#xff0c;Docker 容器端口会绕过防火墙规则。建议通过 iptables​ 或 ip6tables​ 配置防火墙&#xff0c;并将规则添加到 DOCKER-USER​ 链。仅支持 iptables-nft​ 和 iptables-legacy​&#xff0…...

[目标检测]2023ICCV:DiffusionDet: Diffusion Model for Object Detection

作者&#xff1a;Shoufa Chen, Peize Sun, Yibing Song, Ping Luo 论文&#xff1a;https://arxiv.org/pdf/2211.09788v2 代码&#xff1a;https://github.com/ShoufaChen/DiffusionDet 摘要 我们提出了一个新的框架DiffusionDet&#xff0c; 将目标检测构建为从噪声框到目标…...

CExercise_09_结构体和枚举_2VS的Debug模式查看它的内存布局,采用结构体数组的方式存储信息,调用函数打印结构体数组.

题目&#xff1a; 下面结构体类型的变量的内存布局是怎样的&#xff1f;请使用VS的Debug模式查看它的内存布局 typedef struct stundent_s {int number;char name[25];char gender;int chinese;int math;int english; } Student;// 结构体对象的声明和初始化 Student s1 { 1, …...

LeetCode 热题 100_零钱兑换(85_322_中等_C++)(动态规划)

LeetCode 热题 100_零钱兑换&#xff08;85_322&#xff09; 题目描述&#xff1a;输入输出样例&#xff1a;题解&#xff1a;解题思路&#xff1a;思路一&#xff08;动态规划&#xff09;&#xff1a; 代码实现代码实现&#xff08;思路一&#xff08;动态规划&#xff09;&a…...

Java——抽象方法抽象类 接口 详解及综合案例

1.抽象方法抽象类 介绍 抽象方法: 将共性的行为(方法)抽取到父类之后&#xff0c; 由于每一个子类执行的内容是不一样&#xff0c; 所以&#xff0c;在父类中不能确定具体的方法体。 该方法就可以定义为抽象方法。 抽象类: 如果一个类中存在抽象方法&#xff0c;那么该类就必须…...

国产芯片解析:LDR6501 Type-C接口OTG充电PD芯片详解

LDR6501 是一款专为 USB Type-C 设备设计的单C口DPR接口PD通信芯片&#xff0c;封装形式为 SOT23-6。此款芯片具有多项实用功能&#xff0c;在耳机转接器、领夹麦克风以及 OTG 转接头等应用中表现出色。 应用领域 ‌耳机转接器‌&#xff1a;许多新型耳机采用 Type-C 接口&am…...